一些hack css 的写法

E8及以下版本有一些和!imporant有关的怪僻,它允许一个赋值优先级更高。IE7及更早版本接受任意字符串替代important, 并且会正常处理该值,而其它浏览器则会忽略。

/* 在IE8及以下版本下设文字为蓝色,其它浏览器中为黑色 */

body {

color: black;

color: blue !ie;

}

相似地,IE8及更早版本接受在!important声明后面的非字母符号,而其它浏览器会忽略它。

body {

color: black;

color: blue !important!;

}

HTML元素是W3C标准DOM (Document Object Model)的根元素,但是IE 4至6的版本中还有一个神秘的父元素。完全兼容的浏览器会忽略这个* html选择器,但IE4-6却会对它正常处理。这样就可以为这些版本的浏览器指定特别的规则。比如,这个规则可以特别指定IE4-6中的文字大小,但对 其它浏览器不起作用。

* html p {font-size: 5em; }

这个HACK使用了完全有效的CSS。

子选择器hack

(适用于IE6及以下版本)

IE6和早期的版本不支持“子选择器”(>),利用这个我们可以为其它浏览器指定特别的规则。举例来说,这个规则可以让段落文字在 firefox 变成蓝色,但在IE7之前的版本里却不能。

html > body p { color: blue; }

虽然IE7增加了对子选择器的支持,但人们发现了新的hack可以把IE7也排除。当一个空的注释紧跟在子选择器的后面重复的时候,IE7会不 识别后面的规则,就和较早版本的浏览器一样。

html >/**/ body p { color: blue; }

虽然IE7不再识别以前的* html hack,但它使用了一个相似的新的hack。

*:first-child+html p { font-size: 5em; }

或者:

*+html p { font-size: 5em; }

此代码只适用于IE7,不适用于其它任何浏览器。注意这个HACK只在IE7标准模型里工作正常,在怪异模式下不能用。这个hack也被IE8 的兼容模式(相当于IE7的标准模式)所支持。和星号HTML hack一样,它也使用了有效的CSS。

IE6及以下版本有一个!important带来的问题,当在同一段代码块中同一元素的同一属性有了不同的值,本应结果是第二个值被第一个取 代,但IE6及更低版本并不这么做。

/* 在IE6及更低版本中设文字为蓝色 */

body {

color: black !important;

color: blue;

}


转载于:https://my.oschina.net/u/1470765/blog/214716

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值