【问题标题】:Purpose of asterisk before a CSS propertyCSS 属性前星号的用途
【发布时间】:2010-12-14 00:31:22
【问题描述】:

以下内容来自 Yahoo CSS 重置。有人可以解释一下星号的用途吗?

body {
  font:13px/1.231 arial,helvetica,clean,sans-serif;
  *font-size:small;
  *font:x-small;
}

【问题讨论】:

    标签: css


    【解决方案1】:

    它是针对 Internet Explorer 7 或更低版本的浏览器特定 CSS hack。

    *属性:值

    虽然 Internet Explorer 7 已更正 当属性名称为 前缀为下划线或 连字符,其他非字母数字 字符前缀被视为 在IE6中。因此,如果您添加一个 非字母数字字符,例如 紧接在 a 之前的星号 (*) 属性名称,属性将是 应用于IE而不是其他 浏览器。与连字符和 下划线方法,CSS 规格无保留 星号作为前缀,所以使用 这种黑客攻击可能会导致 作为 CSS 的意外行为 规范不断发展。

    *property: value 在 IE 7 及更低版本中应用属性值。它可能或可能 在未来的版本中不起作用。警告: 这使用了无效的 CSS。

    发件人:http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml

    【讨论】:

      【解决方案2】:

      这是一个 Internet Explorer hack。如果您在属性名称前添加星号 (*) 等非字母数字字符,则该属性将在 IE7 及以下版本中应用,但在其他浏览器中不适用。

      http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml

      【讨论】:

        【解决方案3】:

        除了 IE 之外的所有浏览器都会忽略这些规则。它被称为明星黑客。我认为IE7会忽略标准模式下的规则。

        在这种情况下,IE 6 有时会设置字体规则,然后覆盖 IE 7。

        【讨论】:

        【解决方案4】:

        放置这样的字符是让 IE 6 使用样式属性的一种技巧/解决方法,同时将其隐藏在更“健全”的浏览器中。

        来自here

        长话短说,Internet Explorer CSS 解析器太过分了 积极地试图发现财产的名称和意愿 事实上忽略前导非字母数字字符。根据我的测试 似乎至少从 IE5 开始就是这种情况。

        【讨论】:

          【解决方案5】:

          据我所知,星号会阻止 Firefox 读取属性,但在 IE 中有效。

          【讨论】:

            【解决方案6】:

            这是一个 CSS hack,该规则仅适用于 IE7 及以下版本。

            我不建议使用它,有更好的方法来修复 IE 不兼容问题。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2013-02-02
              • 2011-01-26
              • 2011-06-01
              • 2017-03-24
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多