前端设计中的浏览器CSS Hack汇总
- Myheimu - UED TEAM,用户体验设计,web前端开发CSS Hack是我们解决浏览器兼容性(尤其是IE各版本)问题的常用手段. CSS Hack的手法可以说是五花八门,使用时经常混淆. js代码
/***** Selector Hacks ******/. /* IE6及更低版本浏览器 */. /* IE8, FF, Saf, Opera (除了IE 6、7的所有浏览器) */.
CSS Hack是我们解决浏览器兼容性(尤其是IE各版本)问题的常用手段。CSS Hack的手法可以说是五花八门,使用时经常混淆。下面是一个汇总,以便查阅。
/***** Selector Hacks ******/ /* IE6及更低版本浏览器 */* html #uno { color: red } /* IE7 */*:first-child+html #dos { color: red } /* IE7, FF, Saf, Opera */html>body #tres { color: red } /* IE8, FF, Saf, Opera (除了IE 6、7的所有浏览器) */html>/**/body #cuatro { color: red } /* Opera 9.27 and below, safari 2 */html:first-child #cinco { color: red } /* Safari 2-3 */html[xmlns*=""] body:last-child #seis { color: red } /* safari 3+, chrome 1+, opera9+, ff 3.5+ */body:nth-of-type(1) #siete { color: red } /* safari 3+, chrome 1+, opera9+, ff 3.5+ */body:first-of-type #ocho { color: red } /* saf3+, chrome1+ */@media screen and (-webkit-min-device-pixel-ratio:0) { #diez { color: red } } /* iPhone / mobile webkit */@media screen and (max-device-width: 480px) { #veintiseis { color: red } } /* Safari 2 - 3.1 */html[xmlns*=""]:root #trece { color: red } /* Safari 2 - 3.1, Opera 9.25 */*|html[xmlns*=""] #catorce { color: red } /* 除了ie 6-8的所有浏览器 */:root *> #quince { color: red } /* IE7 */*+html #dieciocho { color: red } /* Firefox. 1+ */#veinticuatro, x:-moz-any-link { color: red } /* Firefox 3.0+ */#veinticinco, x:-moz-any-link, x:default { color: red } /* FF 3.5+ */body:not(:-moz-handler-blocked) #cuarenta { color: red; } /***** Attribute Hacks ******/ /* IE6 */#once { _color: blue } /* IE6, IE7 */#doce { *color: blue; /* o或者 #color: blue */ } /* 所有浏览器,除了 IE6 */#diecisiete { color/**/: blue } /* IE6, IE7, IE8 */#diecinueve { color: blue\9; } /* IE7, IE8 */#veinte { color/*\**/: blue\9; } /* IE6, IE7 -- 和!important作用相同 */#veintesiete { color: blue !ie; } /* 感叹号后边可以是任意字符串 */ /* IE8, IE9 */#anotherone {color: blue\0/;} /* 必须放在所有规则的最后面 */