浏览器优先级:此类Hack不仅会对CSS生效,还会对判断语句中写入的所有代码生效。
书写顺序一般是把识别能力强的浏览器的CSS写在最后。 下面更详细地解释如何编写。
如何编写 CSS Hack
例如,要区分IE6和两种浏览器,可以这样写:
我在 IE6 中看到它为红色,在 IE6 中看到它为绿色。
解释:
上面的css进去了,但是它不知道后面带星号的东西是什么,所以就过滤掉了,忽略掉。 分析的结果是:div{:green},所以当然这个div的背景是绿色的。
在IE6中,两者都可以识别。 它的分析结果是:div{:green;:red;},所以根据优先级,后面的红色优先级更高,所以当然这个div的背景色是红色。
CSS hack:区分IE6和IE7,
为了区分不同浏览器,CSS hack写法:
IE6和FF的区别:
:;*:蓝色的;
IE6和IE7的区别:
:绿,蓝;
IE7和FF的区别:
:; *:绿色的;
FF、IE7、IE6的区别:
:;*:绿,蓝;
:;*:绿,蓝;
注:IE可以识别*; 标准浏览器(如FF)无法识别*;
IE6可以识别*,但有些情况不能识别!,
-------------------------------------------------- ----------------------------------------------------
IE6支持! 重新定义,例如:
。 {颜色:#e00!;}
.{颜色:#000;}
你会发现,当定义了style class=""时,字体在IE下显示为红色(#e00)。
但 ! 不支持相同的定义。 例如:
。 {颜色:#e00!;颜色:#000}
IE6 下不支持此功能。 你会发现,当定义了style class=""时,字体显示为黑色(#000)。
不包括 ! 具有以下形式的相同定义。
#{:(..)!;
:100%;} 这种形式的定义可以在 IE6 中解释。
-------------------------------------------------- ----------------------------------------------------
IE6 IE7可以识别*,也可以识别!;
FF 不能识别 *,但它可以!;
IE6 IE7 FF
* √ √ ×
! √
√ √
浏览器优先级:FF
以:“#demo {width:100px;}”为例;
#demo {width:100px;} /*IE6和IE7执行*/
* html #demo {width:120px;} /* 会被IE6执行,前面的定义会被后面的定义覆盖,所以#demo的宽度在IE6中会是120px; */
*+html #demo {width:130px;} /*将由IE7执行*/
----------------
所以最终#demo在三个浏览器中的宽度解释为:
:100 像素;
即6:120像素;
即7:130像素;
IE8最新的CSS hack:
“\9”示例:“:1px \9;”。 这里的“\9”可以区分所有的IE和.
“\0”IE8可以识别,但IE6和IE7不能识别。
“*”IE6、IE7可以识别。 IE8不能。
“_”IE6可以识别“_”,但IE7和IE8不能。
IE6破解
-颜色:#; /*即6*/
IE7破解
*-颜色:#; /*即7*/
IE8破解
-颜色:红色\0; /*即8/9*/
IE9破解
-颜色:蓝色\9\0;
火狐、傲游等高级浏览器通用
-红色!;
注意编写 hack 的顺序,其中:
-颜色:红色\0; IE8、IE9均支持; -颜色:蓝色\9\0; 仅IE9支持;
另外,HACK -color:\9; 支持IE6-IE8,但IE8无法识别“*”和“_”的CSS HACK。
上述规则可以灵活组合应用。
IE9和IE8与其他版本的区别
-颜色:蓝色; 被所有浏览器识别并在这里使用;
-color:red\9;\9所有IE浏览器均可识别;
-颜色:\0; \0 是为 IE8 保留的,最新版本的 Opera 也能识别它。 后来写了一个 hack 供 Opera 识别,所以我们认为 \0 是为 IE8 保留的;
+-颜色:粉色; + ie7 已设置;
-颜色:; _专为神奇的ie6保留;
:root #test { -color:\9; } :root 适用于 IE9。 网上流传的一个版本是:root #test { -color:\0;}。 这也是新版本Opera所认可的,因此经过笔者反复验证。 最后,IE9 特有的是:root 选择器 {\9;}
@media all and (min-width:0px){ #test {-color:black\0;} } 这就是始终与IE竞争识别\0的神奇歌剧。 必须加一个\0,否则,...我们都认识。 。 。
@media and (--min--pixel-ratio:0){ #test {-color:gray;} }最后一张来自浏览器新贵and。