CSS hack适用于哪些浏览器和版本?

5

我一直在寻找解决CSS问题的方法。我使用了一个hack来为Internet Explorer创建自定义规则。

margin-top:45px;
*margin-top:0px;

这个hack适用于所有IE浏览器吗?这个hack是否出现在任何版本的Firefox或Safari中?
1个回答

9
这适用于IE7及以下版本。但请注意,这不是有效的CSS,并且它随时可能会出现问题。有关各种CSS hack及其影响的更全面列表,请参见此处

虽然Internet Explorer 7在属性名以下划线或连字符为前缀时已经纠正了其行为,但其他非字母数字字符前缀仍像IE6中一样处理。因此,如果您在属性名前立即添加一个非字母数字字符(如星号*),则该属性将在IE中应用而不是其他浏览器中。与连字符和下划线方法不同,CSS规范没有保留星号作为前缀,因此使用此hack可能会导致意外行为,因为CSS规范正在不断发展。

我强烈建议重新考虑是否真的需要这个hack,并且是否有更好的方法来实现您想要的效果。


1
我宁愿不使用条件注释来包含另一个样式表,这意味着IE用户需要进行另一个HTTP请求。 - Sam Becker
1
这有点虚假的二元论 -- 你不一定要在条件样式表和CSS hack之间做出选择。有办法编写CSS,使其在IE和其他浏览器中看起来相同,尽管我承认这有点困难。 - John Feminella
我现在遇到的情况有点棘手。这与IE处理嵌套UL和浮动的方式有关。 - Sam Becker
也许你应该为此提出一个新问题!(如果这个问题已经解决了你的疑问,请将其标记为已关闭... ;) ) - John Feminella
关于“CSS规范没有为星号作为前缀留下任何保留,因此使用这种技巧可能会导致意外行为,随着CSS规范的发展。”我相信在未来几十年甚至永远不会使用星号。如果星号突然被解释为其他内容,将会造成混乱。 - Sharky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接