【发布时间】:2010-10-13 08:25:19
【问题描述】:
我一直在寻找解决我遇到的 CSS 问题的技巧。我曾经使用过一个为 Internet Explorer 创建自定义规则。
margin-top:45px;
*margin-top:0px;
此 hack 是否适用于所有 IE 浏览器?此 hack 是否出现在任何版本的 Firefox 或 Safari 中?
【问题讨论】:
标签: css cross-browser css-hack
我一直在寻找解决我遇到的 CSS 问题的技巧。我曾经使用过一个为 Internet Explorer 创建自定义规则。
margin-top:45px;
*margin-top:0px;
此 hack 是否适用于所有 IE 浏览器?此 hack 是否出现在任何版本的 Firefox 或 Safari 中?
【问题讨论】:
标签: css cross-browser css-hack
这适用于 IE7 及以下版本。但请注意,这不是有效的 CSS,它可能随时中断。请参阅here,了解各种 CSS hack 及其影响的浏览器的更全面列表。
虽然 Internet Explorer 7 更正了属性名称前缀为下划线或连字符时的行为,但其他非字母数字字符前缀的处理方式与 IE6 中的相同。因此,如果您在属性名称前添加星号 (*) 等非字母数字字符,则该属性将在 IE 中应用,而不是在其他浏览器中应用。与连字符和下划线方法不同,CSS 规范不保留星号作为前缀,因此随着 CSS 规范的发展,使用这种 hack 可能会导致意外行为。
我强烈建议您重新考虑您是否真的需要此 hack,以及是否没有更好的方法来做您想做的事。
【讨论】:
the CSS specification makes no reservations for the asterisk as a prefix, so use of this hack could result in unexpected behavior as the CSS specifications evolve. 我相信该规范在未来几十年或永远不会使用星号。如果星号突然被解释为其他东西,就会造成大混乱。