对着多个解析不一样浏览器是件郁闷的事,是所有写CSS的人都会遇到的。
虽然条件注释是一比较理想的做法,向前向后兼容。可惜我不大喜欢N个版本的CSS,
先说下我的自己的用法.
初始化
Selectors{}
保证向后兼容性,
接着开始过滤
不管IE6有没有引进Quirks Mode
都用
* html Selectors{}
处理IE6和以下版本,
对下再向下版本的区分我做了比较复杂的处理。
用读入IE5.x
@media tty {
i{content:"\";/*" "*/}} @import 'ie5x.css'; /*";}
}/* */
在特别的要求下才会用,因为IE5跟IE5.5很多方面都很像。我选择把他们放在一样。
但是IE5总会相对笨点,
我必须再加区分,是用
*>html Selectors{}
本来应该是
*>html body Selectors{}
比较好处理优先权的问题,
IE7对于CSS的支持已经接近FF,Opera,Safari这些浏览器了,但是,总会有些特别的问题,
我选择用
*+html Selectors{}
来特别处理IE7,可是当IE7也引进Quirks Mode时,问题变得很复杂的,他对CSS的认识也降到IE5,很像,又有不一样滴,我想没找到解决的方式,所以我打死也不把IE7引进Quirks Mode
FF也不是标准的。有时还会有特别的问题。
用私有的东东来过,
@namespace url();
@-moz-document url("http://www.loaoao.com") {
Selectors{ ... !important}
}
Opera 呢。虽然通过ACID2
可在我无聊的的写法下~依然有问题像这样的 li:hover+li {} 不知道下个发布版本会不会解决
还好别人提供了
@media all and (min-width: 0px){
Selectors{}
}
Safari 呢?请原谅我的穷,我没有钱买apple的东西,
我不知道到底会出现多少的问题。这是最最郁闷的事,还好Safari对标准支持很好,
更多过滤的方式可以参考
不管是用hack还是filter 都是痛苦的
解决今天的问题不是为了生产明天的问题。