สิ่งต่อไปนี้นำมาจากการรีเซ็ต Yahoo CSS ใครช่วยอธิบายจุดประสงค์ของเครื่องหมายดอกจันได้ไหม
body {
font:13px/1.231 arial,helvetica,clean,sans-serif;
*font-size:small;
*font:x-small;
}
สิ่งต่อไปนี้นำมาจากการรีเซ็ต Yahoo CSS ใครช่วยอธิบายจุดประสงค์ของเครื่องหมายดอกจันได้ไหม
body {
font:13px/1.231 arial,helvetica,clean,sans-serif;
*font-size:small;
*font:x-small;
}
คำตอบ:
เป็นการแฮ็ก CSS เฉพาะของเบราว์เซอร์สำหรับ Internet Explorer เวอร์ชัน 7 หรือต่ำกว่า
* คุณสมบัติ: ค่า
แม้ว่า Internet Explorer 7 จะแก้ไขพฤติกรรมเมื่อชื่อคุณสมบัติถูกนำหน้าด้วยเครื่องหมายขีดล่างหรือยัติภังค์คำนำหน้าอักขระที่ไม่ใช่ตัวเลขและตัวอักษรอื่น ๆ จะได้รับการปฏิบัติเช่นเดียวกับใน IE6 ดังนั้นหากคุณเพิ่มอักขระที่ไม่ใช่ตัวเลขและตัวอักษรเช่นเครื่องหมายดอกจัน (*) หน้าชื่อคุณสมบัติคุณสมบัติจะถูกนำไปใช้ใน IE ไม่ใช่ในเบราว์เซอร์อื่น ไม่เหมือนกับวิธีการใช้ยัติภังค์และขีดล่างข้อกำหนดของ CSS จะไม่มีการจองเครื่องหมายดอกจันเป็นคำนำหน้าดังนั้นการใช้แฮ็กนี้อาจทำให้เกิดพฤติกรรมที่ไม่คาดคิดได้เนื่องจากข้อกำหนดของ CSS มีการเปลี่ยนแปลง
* คุณสมบัติ: value ใช้กับค่าคุณสมบัติใน IE 7 และต่ำกว่า อาจใช้งานได้หรือไม่ก็ได้ในเวอร์ชันอนาคต คำเตือน: สิ่งนี้ใช้ CSS ที่ไม่ถูกต้อง
จาก: http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml
เป็นการแฮ็ก Internet Explorer หากคุณเพิ่มอักขระที่ไม่ใช่ตัวเลขและตัวอักษรเช่นเครื่องหมายดอกจัน (*) หน้าชื่อคุณสมบัติคุณสมบัติจะถูกนำไปใช้ใน IE7 และต่ำกว่า แต่จะไม่ใช้ในเบราว์เซอร์อื่น
เบราว์เซอร์ทั้งหมดยกเว้น IE ไม่สนใจกฎ เป็นที่รู้จักกันในชื่อดาวสับ ฉันคิดว่า IE7 จะละเว้นกฎในโหมดมาตรฐาน
ในกรณีนี้กฎฟอนต์จะถูกตั้งค่าและแทนที่สำหรับ IE 6 และบางครั้งก็เป็น 7
เท่าที่ฉันทราบเครื่องหมายดอกจันป้องกันไม่ให้ Firefox อ่านแอตทริบิวต์ แต่ใช้ได้ใน IE
เป็นการแฮ็ก CSS กฎนั้นจะใช้กับ IE7 และต่ำกว่าเท่านั้น
ฉันไม่แนะนำให้ใช้ แต่มีวิธีที่ดีกว่าในการแก้ไขความเข้ากันไม่ได้ของ IE
การวางอักขระแบบนั้นเป็นการแฮ็ก / วิธีแก้ปัญหาเพื่อให้ IE 6 ใช้คุณสมบัติของสไตล์ในขณะที่ซ่อนจากเบราว์เซอร์ที่ "มีเหตุผล" มากขึ้น
จากที่นี่ :
ในการตัดเรื่องสั้นให้สั้นตัวแยกวิเคราะห์ CSS ของ Internet Explorer มีความก้าวร้าวมากเกินไปในการพยายามค้นหาชื่อของคุณสมบัติและในความเป็นจริงจะละเว้นอักขระที่ไม่ใช่ตัวเลขและตัวอักษรนำหน้า จากการทดสอบของฉันสิ่งนี้ดูเหมือนจะเป็นอย่างน้อยตั้งแต่ IE5 เป็นต้นไป