ฉันกำลังพัฒนาเว็บแอปพลิเคชันและฉันจำเป็นต้องระบุเบราว์เซอร์ของ Microsoft Edge แยกจากตัวอื่นเพื่อใช้สไตล์ที่เป็นเอกลักษณ์ มีวิธีระบุ Edge โดยใช้ CSS หรือไม่? เหมือนกับ,
<!--[if IE 11]>
Special instructions for IE 11 here
<![endif]-->
ฉันกำลังพัฒนาเว็บแอปพลิเคชันและฉันจำเป็นต้องระบุเบราว์เซอร์ของ Microsoft Edge แยกจากตัวอื่นเพื่อใช้สไตล์ที่เป็นเอกลักษณ์ มีวิธีระบุ Edge โดยใช้ CSS หรือไม่? เหมือนกับ,
<!--[if IE 11]>
Special instructions for IE 11 here
<![endif]-->
คำตอบ:
/ * Microsoft Edge Browser 12-18 (ทุกเวอร์ชันก่อน Chromium) * /
อันนี้ควรใช้งานได้:
@supports (-ms-ime-align:auto) {
.selector {
property: value;
}
}
สำหรับข้อมูลเพิ่มเติมโปรดดู: Browser Strangeness
/* Microsoft Edge Browser 12-18 (All versions before Chromium) - one-liner method */
_:-ms-lang(x), _:-webkit-full-screen, .selector { property:value; }
ใช้งานได้ดีมาก!
// for instance:
_:-ms-lang(x), _:-webkit-full-screen, .headerClass
{
border: 1px solid brown;
}
https://jeffclayton.wordpress.com/2015/04/07/css-hacks-for-windows-10-and-spartan-browser-preview/
_:-ms-lang(x), _:-webkit-full-screen,
- เฉพาะ MS Edge เท่านั้นที่ "เข้าใจ" กฎนั้นเบราว์เซอร์อื่นจะไม่สนใจ กฎจะตามด้วยคลาสหรือชื่อรหัสขององค์ประกอบ html และใช้กับมัน กล่าวอีกนัยหนึ่งถ้าจำเป็นต้องใช้โค้ด css กับองค์ประกอบ html ในเบราว์เซอร์ Edge เท่านั้นให้วางกฎพิเศษนั้นไว้หน้าคลาส / id ขององค์ประกอบของคุณ
,
แยกตัวเลือกใน css นั่นเป็นสาเหตุที่ทำให้เกิดความสับสน ฉันยังไม่เข้าใจว่าทำไมเบราว์เซอร์อื่นถึงไม่สนใจสิ่งนี้และมีเพียง ms-edge เท่านั้นที่จะใช้ css กับตัวเลือกหลังเครื่องหมายจุลภาค
ที่แม่นยำยิ่งขึ้นสำหรับEdge (ไม่รวม IE 15 ล่าสุด) คือ:
@supports (display:-ms-grid) { ... }
@supports (-ms-ime-align:auto) { ... }
ใช้งานได้กับ Edge ทุกรุ่น (ปัจจุบันสูงถึง IE15)
For Internet Explorer
@media all and (-ms-high-contrast: none) {
.banner-wrapper{
background: rgba(0, 0, 0, 0.16)
}
}
For Edge
@supports (-ms-ime-align:auto) {
.banner-wrapper{
background: rgba(0, 0, 0, 0.16);
}
}