CSS hack

CSS hack主要有三种方式:①IE条件注释;②选择符前缀;③样式属性前缀。由于IE浏览器在CSS解析上存在很多问题(可以百度,一堆的CSS bug),所以一般来说CSS hack都是针对IE浏览器来说的

1、IE条件注释(微软官方推荐的hack方式)。针对不同的IE版本,引入对应的CSS文件。注意,这里引入的是一个文件,因此很容易理解这种方法会极大的增加开发和维护的成本(想象一下,IE没更新一个版本,就要重写css代码。。。),所以经常使用的是后两种hack方式。但由于这是官方推荐的,这里还是会仔细的讲述一下

基本用法如下:

1 <!--[if IE]>
2 <link type="text/css" href="ie.css" ref="stylesheet" />   //这里不仅使用link标签,同样可以使用style、script等标签
3 <![endif]-->

扩展用法:

①指定IE版本:只在IE8下生效

<!--[if IE 8]>
<link type="text/css" href="ie.css" ref="stylesheet" />   
<![endif]-->

②针对某个版本以内的范围:使用关键字lt(小于)、lte(小于等于)、gt(大于)、gte(大于等于)、!(不等于),如下代码表示ie.css文件只在IE8及以上本生效

<!--[if gte IE 8]>
<link type="text/css" href="ie.css" ref="stylesheet" /> 
<![endif]-->

 

2、选择符前缀:在CSS选择符前加一些只有特定浏览器才能识别的前缀,从而让某些样式只能被特定的浏览器识别

*html  .test{  // ....}    only for ie6
*+html .test{ // ....}    only for IE7
@media screen and (min-width:0\0){
             .test{ //....}    only for IE9  IE10    
}
@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){
             .test{ //....}    for  IE10+
}

注意:选择符前缀不能用于内联样式。

【Note】何为内联样式?

<span class="test" style="color:red;text-algin:center;">Hello World</span>

代码中style="color:red;text-algin:center;"定义的样式即为内联样式

 

3、样式属性前缀

.test{
    style:value;
    style:value\9;         //for all IE
    style:value\0/;          //for IE8-9 
    style/*\**/: val\9;    //for IE7-8 
    *style:value;         //for IE6-7 
    #style:value;         //for IE6-7
    +style:value;         //only for IE7
    _style:value;         //only for IE6
}

样式属性选择符可以用于内联样式。

 

CSS hack,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。