css hack原理及常用hack

原理:利用不同浏览器对CSS的支持和解析结果不一样编写针对特定浏览器样式。常见的hack有1)属性hack。2)选择器hack。3)IE条件注释

IE条件注释:适用于[IE5, IE9]常见格式如下

<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]-->

熊猫办公https://www.wode007.com/sites/73654.html

选择器hack:不同浏览器对选择器的支持不一样

/***** Selector Hacks ******/

/* IE6 and below */
* html #uno  { color: red }

/* IE7 */
*:first-child+html #dos { color: red }

/* IE7, FF, Saf, Opera  */
html>body #tres { color: red }

/* IE8, FF, Saf, Opera (Everything but 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- 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  }

/* Everything but IE6-8 */
:root *> #quince { color: red  }

/* IE7 */
*+html #dieciocho {  color: red }

/* Firefox only. 1+ */
#veinticuatro,  x:-moz-any-link  { color: red }

/* Firefox 3.0+ */
#veinticinco,  x:-moz-any-link, x:default  { color: red  }

属性hack:不同浏览器解析bug或方法

 1 /* IE6 */
 2 #once { _color: blue }
 3 
 4 /* IE6, IE7 */
 5 #doce { *color: blue; /* or #color: blue */ }
 6 
 7 /* Everything but IE6 */
 8 #diecisiete { color/**/: blue }
 9 
10 /* IE6, IE7, IE8 */
11 #diecinueve { color: blue9; }
12 
13 /* IE7, IE8 */
14 #veinte { color/***/: blue9; }
15 
16 /* IE6, IE7 -- acts as an !important */
17 #veintesiete { color: blue !ie; } /* string after ! can be anything */


原文地址:https://www.cnblogs.com/ypppt/p/13093423.html