ก่อนอื่นข้อจำกัดความรับผิดชอบ ฉันไม่ได้สนับสนุนวิธีการแก้ปัญหาที่ฉันนำเสนอด้านล่าง CSS เฉพาะเบราว์เซอร์เฉพาะที่ฉันเขียนมีไว้สำหรับ IE (โดยเฉพาะ IE6) แต่ฉันก็หวังว่ามันจะไม่เป็นเช่นนั้น
ตอนนี้การแก้ปัญหา คุณขอให้มันดูสง่างามดังนั้นฉันจึงไม่รู้ว่ามันสง่างามแค่ไหน แต่มันแน่นอนว่าจะกำหนดเป้าหมายไปที่แพลตฟอร์มของตุ๊กแกเท่านั้น
เคล็ดลับนี้ใช้ได้เฉพาะเมื่อเปิดใช้งาน JavaScript และใช้การเชื่อมโยง Mozilla ( XBL ) ซึ่งมีการใช้อย่างมากภายใน Firefox และผลิตภัณฑ์อื่น ๆ ที่ใช้ Gecko สำหรับการเปรียบเทียบนี่เป็นเหมือนคุณสมบัติ CSS ของพฤติกรรมใน IE แต่มีประสิทธิภาพมากกว่า
มีสามไฟล์ที่เกี่ยวข้องในโซลูชันของฉัน:
- ff.html: ไฟล์ตามสไตล์
- ff.xml: ไฟล์ที่มีการเชื่อมโยง Gecko
- ff.css: การใส่สไตล์เฉพาะของ Firefox
ff.html
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
body {
-moz-binding: url(ff.xml#load-mozilla-css);
}
</style>
</head>
<body>
<h1>This should be red in FF</h1>
</body>
</html>
ff.xml
<?xml version="1.0"?>
<bindings xmlns="http://www.mozilla.org/xbl">
<binding id="load-mozilla-css">
<implementation>
<constructor>
<![CDATA[
var link = document.createElement("link");
link.setAttribute("rel", "stylesheet");
link.setAttribute("type", "text/css");
link.setAttribute("href", "ff.css");
document.getElementsByTagName("head")[0]
.appendChild(link);
]]>
</constructor>
</implementation>
</binding>
</bindings>
ff.css
h1 {
color: red;
}
ปรับปรุง:
ทางออกข้างต้นไม่ดี มันจะดีกว่าถ้าแทนการผนวกองค์ประกอบ LINK ใหม่จะเพิ่มว่า "Firefox" ชั้นในองค์ประกอบร่างกาย และเป็นไปได้เพียงแค่แทนที่ JS ข้างต้นด้วยสิ่งต่อไปนี้:
this.className += " firefox";
การแก้ปัญหาคือแรงบันดาลใจจากคณบดีเอ็ดเวิร์ด moz-พฤติกรรม