CSS属性之前的星号用途

时间:2009-11-06 21:39:33

标签: css

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

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

6 个答案:

答案 0 :(得分:111)

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

  

* property:value

     

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

     

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

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

答案 1 :(得分:5)

这是一个Internet Explorer黑客攻击。如果在属性名称之前添加非字母数字字符(如星号(*)),则该属性将应用于IE7及更低版本,但不会应用于其他浏览器。

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

放置这样的字符是让IE 6使用样式属性的黑客/解决方法,同时将其隐藏在更“理智”的浏览器中。

来自here

  

简而言之,Internet Explorer CSS解析器过于简单   积极尝试发现属性的名称,并将在   事实上忽略了领先的非字母数字字符。从我测试这个   似乎至少从IE5开始就是这种情况。

答案 5 :(得分:0)

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

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