【问题标题】:What is the scope of the * CSS hack?* CSS hack 的范围是什么?
【发布时间】: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


    【解决方案1】:

    这适用于 IE7 及以下版本。但请注意,这不是有效的 CSS,它可能随时中断。请参阅here,了解各种 CSS hack 及其影响的浏览器的更全面列表。

    虽然 Internet Explorer 7 更正了属性名称前缀为下划线或连字符时的行为,但其他非字母数字字符前缀的处理方式与 IE6 中的相同。因此,如果您在属性名称前添加星号 (*) 等非字母数字字符,则该属性将在 IE 中应用,而不是在其他浏览器中应用。与连字符和下划线方法不同,CSS 规范不保留星号作为前缀,因此随着 CSS 规范的发展,使用这种 hack 可能会导致意外行为。

    我强烈建议您重新考虑您是否真的需要此 hack,以及是否没有更好的方法来做您想做的事。

    【讨论】:

    • 好吧,我不希望使用条件注释来包含另一个样式表,这意味着对 IE 用户的另一个 HTTP 请求。
    • 这是一个错误的两难选择——您不必在 (a) 条件样式表和 (b) CSS hack 之间做出选择。有一些方法可以编写 CSS,以便它们在 IE 和其他浏览器中看起来相同,尽管我承认这有点困难。
    • 我所处的特殊情况有点棘手。与 IE 处理嵌套 UL 和浮动的方式有关。
    • 也许你应该为此提出一个新问题,那么! (如果它符合您的定义,请接受此关闭...;))
    • 关于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. 我相信该规范在未来几十年或永远不会使用星号。如果星号突然被解释为其他东西,就会造成混乱。
    猜你喜欢
    • 2011-08-17
    • 2011-11-11
    • 2020-10-18
    • 2017-04-22
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多