关于CSS HACK

  • 关于CSS HACK 能够拜见这个网站http://browserhacks.com/
  • 网上许多材料中经常把!important也作为一个hack手腕,实在这是一个误区。!important经常被我们用来变动款式,而不是兼容hack。形成这个误区的原因是IE6在某些状况下不主动辨认!important,以至于经常被人误用做辨认IE6的hack。但是,人人注重一下,IE6只是在某些状况下不辨认(ie6下,同一个大括号里对同一个款式属性定义,个中一个加important则important标记是被疏忽的,例:{background:red!important; background:green;},ie6下解释为背景色green,别的浏览器解释为背景色red;假如这同一个款式在差别大括号里定义,个中一个加important则important发挥平常作用,例:div{background:red!important},div{background:green},这时候一切浏览器一致解释为背景色red。)
  • 实例解说:
  • Hack运用情境(一)
  • 适用范围:IE:6.0,IE7.0,IE8.0之间的兼容
  • 实例申明:
  • 此例中我们运用了渐进辨认的体式格局,从整体中逐步消除部份。起首,奇妙的运用“9”这一标记,将IE巡游器从一切状况中星散出来。接着,再次运用“+”将IE8和IE7、IE6星散开来,此时,我们的IE8已自力辨认。
  • 实例代码:
   .bb{
   height:32px;
   background-color:#f1ee18;/*一切辨认*/
   .background-color:#00deff\9; /*IE6、7、8辨认*/
   +background-color:#a200ff;/*IE6、7辨认*/
   _background-color:#1e0bd1;/*IE6辨认*/
   }
   /*一个用于展现的class为bb的div标签*/

   < div class ="bb"></ div >
  • Hack运用情境(二)
  • 适用范围:IE:6.0,IE7.0,IE8.0,Firefox之间的兼容
  • 实例申明:
  • 人人很轻易的能够看出这是情境(一)的加强版,适用于更普遍的环境。实在情境(一)中也已做到了把火狐与IE巡游器分辨开来了,如今我们要做的是把火狐从别的巡游器中再次辨认出来。人人细致看下代码,人人会发明实在巡游器辨认是很简单的。火狐怎样辨认?对了,IE中对伪类支撑不普遍,所以伪类是个不错的门路。(.yourClass,x:-moz-any-link,
    x:default)注重,这个分辨伪类每每IE7也能辨认,所以最好还需要把IE7零丁辨认出来,且此要领对ff3.6
    已无效,firefox的分辨能够运用@-moz-document url-prefix(){}
  • 实例代码:
   .bb{
   height:32px;
   background-color:#f1ee18;/*一切辨认*/
   background-color:#00deff\9; /*IE6、7、8辨认*/
   +background-color:#a200ff;/*IE6、7辨认*/
   _background-color:#1e0bd1;/*IE6辨认*/
   }
   .bb, x:-moz-any-link, x:default{background-color:#00ff00;}/*IE7 firefox3.5及以下 辨认 */ 
   @-moz-document url-prefix(){.bb{background-color:#00ff00;}}/* 仅firefox 辨认 */ 
 * +html .bb{background-color:#a200ff;}/* 仅IE7 辨认 */

   /*一个用于展现的class为bb的div标签*/

   < div class ="bb"></ div >
  • Hack运用情境(三)
  • 适用范围:IE:6.0,IE7.0,IE8.0,Firefox,Safari(Chrome)之间的兼容
  • 实例申明:
  • 我们如今将再次对我们的CSS举行加强了,使其能辨认Safari(Chrome)巡游器。这是基于它们的内核webkit来辨认的,用法为@media screen and (-webkit-min-device-pixel-ratio:0)
  • 实例代码:
   .bb{
   height:32px;
   background-color:#f1ee18;/*一切辨认*/
   background-color:#00deff\9; /*IE6、7、8辨认*/
   +background-color:#a200ff;/*IE6、7辨认*/
   _background-color:#1e0bd1;/*IE6辨认*/
   }
   @media screen and (-webkit-min-device-pixel-ratio:0){.bb{background-color:#f1ee18}}{} 
   /*safari(Chrome) 有用 */
   .bb, x:-moz-any-link, x:default{background-color:#00ff00;}/*IE7 firefox3.5及以下 辨认 */ 
   @-moz-document url-prefix(){.bb{background-color:#00ff00;}}/*仅firefox 辨认*/ 
 * +html .bb{background-color:#a200ff;}/* 仅IE7 辨认 */
   /*一个用于展现的class为bb的div标签*/

   < div class ="bb"></ div >
  • Hack运用情境(四)
  • 适用范围:IE:6.0+,FireFox:2.0+,Opera 10.0+,Sarari 3.0+,Chrome全兼容
  • 实例申明:
  • 实例的详细代码在下面实例代码中已列出,详细结果云云页面的顶端部份结果,您能够经由过程差别巡游器检测该结果。此次我们基本把一切的主流巡游器都兼容了,人人来看下代码。Opera的辨认有一部份归功于“0”标记,这个标记只被IE8和Opera辨认,特别的标记每每作育的是我们更普遍的hack手腕。下例的代码比较完全,人人能够挑选参考。
  • 实例代码:
   <style type="text/css">
   /***************************************** 各巡游器兼容CSS **********************************************/
   .bb{height:32px;background-color:#f1ee18;/*一切辨认*/ background-color:#00deff\9; /*IE6、7、8辨认*/ +background-color:#a200ff;/*IE6、7辨认*/ _background-color:#1e0bd1/*IE6辨认*/} 
   @media screen and (-webkit-min-device-pixel-ratio:0){.bb{background-color:#f1ee18}}{} /* Safari(Chrome) 有用 */
   @media all and (min-width: 0px){ .bb{background-color:#f1ee18;/*opera and Safari(Chrome) and firefox*/ background-color:#4cac70\0;}/* 仅 Opera 有用 */ }{} 
   .bb, x:-moz-any-link, x:default{background-color:#4eff00;/*IE7、Firefox3.5及以下 辨认 */} 
   @-moz-document url-prefix(){.bb{background-color:#4eff00;/*仅 Firefox 辨认 */}} 
   * +html .bb{background-color:#a200ff;}/* 仅IE7 辨认 */

   /* 平常状况下 我们分辨IE7 只用 +background-color 合营 _background-color 就好了 假如必需写 .bb, x:-moz-any-link, x:default 如许的代码分辨 Firefox3.5及以下 则服膺此写法对IE7也有用,故在个中要再重写一次 
   +background-color 或许运用 * +html .bb{background-color:blue;} 要领仅对 IE7 有用。可运用 @-moz-document url-prefix(){} 要领自力分辨一切 firefox */

   .browsers td{width:8%;text-align:center;padding:8px;}} 
   .browsercolor{color:#333;font-size:18px;font-weight:bold;} 
   .ie6{background-color:#1e0bd1} 
   .ie7{background-color:#a200ff} 
   .ie8{background-color:#00deff} 
   .firefox{background-color:#4eff00} 
   .opera{background-color:#4cac70} 
   .other{background-color:#f1ee18;} 

   #tipTable td,#tipTable th{border:1px solid black;width:56px;height:16px;text-align:center;} 
   #wordTable td{margin-left:8px;} 
   #firefoxTip{display:none;} 
   #firefoxTip, x:-moz-any-link, x:default{display:block;/*IE7 firefox3.5及以下 辨认 */+display:none/*再分辨一次IE7*/} 
   @-moz-document url-prefix(){#firefoxTip{display:block;/*仅 firefox 辨认 */}} 
   #ChromeTip{display:none;} 
   @media screen and (-webkit-min-device-pixel-ratio:0){#ChromeTip{display:block;}}{} /* safari(Chrome) 有用 */ 
   @media all and (min-width: 0px){#ChromeTip{display:none\0;} /* 仅 Opera 有用 */ }{}
   </style>


   <table class="browsers" width="100%" cellspacing="0" cellpadding="0">
     <tr><td>IE6</td><td></td><td>IE7</td><td></td><td>IE8</td><td></td><td>Firefox</td><td></td><td>Opera</td><td></td><td>Safari(Chrome)</td><td></td></tr>
     <tr class="browsercolor"><td class="ie6">IE6</td><td></td><td class="ie7">IE7</td><td></td><td class="ie8">IE8</td><td></td><td class="firefox">Firefox</td><td></td><td 
     class="opera">Opera</td><td></td><td class="other">Safari(Chrome)</td><td></td></tr>
   </table>
   <div class="bb">
     <span style="display:none;display:block\0;display:none\9;">Opera的分辨色是深绿色,Opera巡游器很时兴么。</span >
     <span id="firefoxTip">Firefox的分辨色是浅绿色,Firefox是很壮大的巡游器。</span >
     <span id="ChromeTip">Safari和Chrome的分辨色是金黄色,Safari和Chrome运用的都是Webkit内核</span >
     <!--[if IE 8]>IE8的分辨色是蓝色,新版IE8的功用但是不少呢。<![endif]-->
     <!--[if IE 7]>IE7的分辨色是紫色,IE7还能够凑合著用!<![endif]-->
     <!--[if IE 6]>IE6的分辨色是赤色,不过,IE6但是有点落伍了!<![endif]-->
   </div>
    原文作者:hover_lew
    原文地址: https://segmentfault.com/a/1190000013093719
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞