我尝试使用 W3C CSS Validator 验证我网站的 CSS。不幸的是,来自 YUI 框架的 reset-min.css 在字符串“{*font-size:100%;”上产生了解析错误。
在进一步调查中,我注意到 Firefox 的错误控制台出现以下错误:
警告:预期声明,但发现“*”。跳到下一个声明。
我找不到任何关于“*”含义的解释,也找不到这个流行的重置 CSS 中的问题的参考。
我错过了什么?
我尝试使用 W3C CSS Validator 验证我网站的 CSS。不幸的是,来自 YUI 框架的 reset-min.css 在字符串“{*font-size:100%;”上产生了解析错误。
在进一步调查中,我注意到 Firefox 的错误控制台出现以下错误:
警告:预期声明,但发现“*”。跳到下一个声明。
我找不到任何关于“*”含义的解释,也找不到这个流行的重置 CSS 中的问题的参考。
我错过了什么?
这是 IE7 及更低版本的 hack。IE7 及更低版本将跳过星号并继续正常解析 CSS。其他浏览器将忽略整个规则。
例如,由于 CSS 将使用规则的最后声明版本,执行以下操作将导致 IE7 及以下版本使用font-size
113% 的 a,而其他浏览器使用font-size
100% 的 a 来表示段落。
p { font-size: 100%; *font-size: 113%; }
在webdevout.net上有更多信息。
就我个人而言,我认为为了解决 IE 的缺陷而使用此类 hack 是可以接受的。显然,雅虎!感觉一样。
这可能是一个 IE 兼容性黑客。
一些浏览器(尤其是 IE 6)会忽略许多 CSS 语法错误,而其他浏览器则不会。一些 CSS 文件会使用错误来制定一个浏览器会看到而另一个浏览器不会看到的规则。
编辑:有关完整列表,请参见此处。在您的特定情况下,该规则只能由 IE 7 或更低版本看到。