q个时候我们就需要针对不同的览器去写不同的CSSQ让它能够同时兼容不同的览器,能在不同的浏览器中也能得到我们想要的面效果?/p>
q个针对不同的浏览器写不同的CSS code的过E,叫CSS hack,也叫写CSS hack?/p>
CSS Hack的原理是什?br /> ׃不同的浏览器对CSS的支持及解析l果不一Pq由于CSS中的优先U的关系。我们就可以Ҏq个来针对不同的览器来写不同的CSS?/p>
比如IE6能识别下划线_和星?QIE7能识别星?Q当不能识别下划U_Q而firefox两个都不能认识。等{?/p>
书写序Q一般是识别能力强的浏览器的CSS写在后面。下面如何写里面说得更详l些?/p>
如何写CSS Hack
比如要分辨IE6和firefox两种览器,可以q样写:
解释一下:
上面的css在firefox中,它是认识不了后面的那个带星号*的东东是什么的Q于是将它过滤掉Q不予理睬,解析得到的结果是:div{background:green},于是理所当然q个div的背景是l色的?/p>
在IE6中呢Q它两个background都能识别出来Q它解析得到的结果是:div{background:green;background:red;},于是Ҏ优先U别Q处在后面的red的优先高,于是当然q个div的背景颜色就是红色的了?/p>
CSS hack:区分IE6QIE7Qfirefox区别不同览器,CSS hack写法Q?/p>
?span style="color: #ff0000;">别IE6与FFQ?br /> background:orange;*background:blue;
区别IE6与IE7Q?br /> background:green !important;background:blue;
区别IE7与FFQ?br /> background:orange; *background:green;
区别FFQIE7QIE6Q?br /> background:orange;*background:green !important;*background:blue;
注:
IE都能识别*;标准览?如FF)不能识别*Q?br />
IE6能识?Q但不能识别 !important,
IE7能识?Q也能识?important;
FF不能识别*Q但能识?important;
IE6 IE7 FF
* √ √ ×
!important × √ √
另外再补充一个,下划U?_",
IE6支持下划U,IE7和firefox均不支持下划Uѝ?/p>
于是大家q可以这h区分IE6QIE7Qfirefox
: background:orange;*background:green;_background:blue;
注:不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中_IE6的写在最后面?/p>
附:CSS的各U浏览器兼容一栏表