css hack

参考:http://www.cnblogs.com/WuQiang/archive/2011/08/23/2150240.html


1.行内hack: 

height:25px\9      /*allIE*/

ie9特有的为:    :root 选择符 {属性\9;}        eg::root #test { background-color:purple\9; }

height:25px\0     /* IE  8*/

*height:25px;      /* IE7 & IE6以下*/

+height:30px;     /* IE7*/
_height:30px;     /* IE6*/


2.    !important 对于只有ie7和firefox 能够识别,ie6不能识别(不是不能识别,是存在bug)

ie6不能识别类似: .box { color:red !important; color:blue}

但是在下面例子中:

div.box     {color:red}

.box         {color:blue !important}

ie6/ie7/firefox   显示的都是 blue

可见: !important  在对于提高选择器的 优先级 上有作用 ,但是不支持在同一规则中 提高代码的顺序优先级


3.   这里面有一个针对IE6以及以下版本的著名方法是* html hack

1.   * html hack

Html 元素是W3C标准DOM (Document Object Model)的根元素。但是,IE 4~6有一个匿名的根元素,它包围着Html 元素。那么这个匿名的元素或者说隐藏的元素到底是什么元素呢?其实它就是鼎鼎大名的* 号,所以我们可以用星号来指定的规则应用于那些被星号包围的 HTML。

IE6以及更老的IE5.5

* html { 
font-size:small; 
}

在任何非ie的浏览器因为没有这个规则(Html元素被*号包围),所以其他的浏览器就会当作看不见,所以当你指定这个规则的时候,你可以放心的应用在IE6以及前一版本的IE5.5要展示效果中

2.IE7的   *+html hack

*+html {

font-size:small
}

这样的表达,就是说除了IE7能认识这个font-size:small以外,其他的浏览器都不会看到这一条的,可以说这是IE7的专属Hack

------------------------------------------------------------------------分割线----------------------------------------------------------


1.区别IE6、IE7 (方法 1)

【区别符号】:「*」、「_」
【示例】:
#tip {
*background
:black; /*IE7 背景变黑色*/ 还可以用+
_background
:orange; /*IE6 背景变橘色*/
}
【说明】:IE7和IE6都可以辨识「*」(米字号),但IE6可以辨识「_」(底线),IE7却无法辨识,透过IE7无法读取「_」的特性就能轻鬆区隔IE6和IE7之间的差异。

2.区别IE6、IE7 (方法 2)
【区别符号】:「!important」
【示例】:
#tip {
background
:black !important; /*IE7 背景变黑色*/
background
:orange; /*IE6 背景变橘色*/
}
【说明】:因为IE7可读取「!important;」但IE6却不行,而CSS的读取步骤是从上到下,因此IE6读取时因无法辨识「!important」而直接跳到下一行读取CSS,所以背景色会呈现橘色。


原文地址:https://www.cnblogs.com/hdchangchang/p/3965404.html