以下内容取自Yahoo CSS重置。有人可以解释一下星号的用途吗?
body {
font:13px/1.231 arial,helvetica,clean,sans-serif;
*font-size:small;
*font:x-small;
}
答案 0 :(得分:111)
这是针对Internet Explorer版本7或更低版本的浏览器特定的CSS hack。
* property:value
虽然Internet Explorer 7已更正 属性名称时的行为 以下划线或下划线为前缀 连字符,其他非字母数字 字符前缀被视为它们 在IE6中。因此,如果你添加一个 非字母数字字符,如 紧接着之前的星号(*) 属性名称,属性将是 应用于IE而不是其他 浏览器。与连字符和 下划线方法,CSS 规格没有保留 对于星号作为前缀,所以使用 这个黑客可能导致 作为CSS的意外行为 规范发展。
* property:value在IE 7及更低版本中应用属性值。它可能或可能 在以后的版本中不起作用。警告: 这使用无效的CSS。
答案 1 :(得分:5)
这是一个Internet Explorer黑客攻击。如果在属性名称之前添加非字母数字字符(如星号(*)),则该属性将应用于IE7及更低版本,但不会应用于其他浏览器。
答案 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不兼容性。