HTML中通过注释判断ie浏览器及css常见hack

1.在HTML代码中                                                                                                              

区别各种浏览器的代码如下(以ie6为例):

1 <!–[if IE 6]> 仅IE6可识别 <![endif]–>
2 <!–[if lte IE 6]> IE6及其以下版本可识别 <![endif]–>
3 <!–[if lt IE 6]> IE6以下版本可识别 <![endif]–>
4 <!–[if gte IE 6]> IE6及其以上版本可识别 <![endif]–>
5 <!–[if gt IE 6]> IE6以上版本可识别 <![endif]–>
6 <!–[if IE]> 所有的IE可识别 <![endif]–>

以上写法是针对ie各版本浏览器的,在其他浏览器中这些代码都会被解释为Html注释而直接无视掉,要想针对firefox之类的非ie浏览器,需要这么写:

1 <!–[if !IE]><!> 除IE外都可识别 <!–<![endif]–>

—————————————————分割线———————————————————

2.CSS代码中                                                                                                                    

根据各浏览器独立的可识别的特殊代码来编写区分浏览器的代码,例如为IE系列浏览器可读[\9],而IE6和IE7可读[*],另外IE6可辨识[ _ ](下划线);

由于CSS读取时是按从上到下来的,同样属性靠后写的生效,因此可以依照顺序写下来,就会让每个浏览器正确的读取到自己看得懂得CSS语法,有效区分各类型或版本:

1 .classname{
2 background:blue; /*Firefox等非IE浏览器背景变蓝色*/
3 background:red \9; /*IE8 背景变红色*/
4 *background:black; /*IE7 背景变黑色*/
5 _background:orange; /*IE6 背景变橘色*/
6 }

类似的还有:

1 .classname {
2 background:black !important; /*非IE6 背景变黑色*/
3 background:orange; /*IE6 背景变橘色*/
4 }

因为其他浏览器可读取「!important;」但IE6却不行。

posted @ 2016-11-21 23:13  Koidt  阅读(279)  评论(0)    收藏  举报