为什么YUI重置CSS不通过验证?

sgu*_*guy 7 css yui w3c-validation

我尝试使用W3C CSS Validator验证我的网站的CSS.不幸的是,来自YUI框架的reset-min.css在字符串"{*font-size:100%;"上产生了解析错误.

验证器结果.

在进一步调查中,我注意到Firefox的错误控制台上出现以下错误:

警告:预期声明但找到'*'.跳到下一个声明.

我找不到'*'含义的任何解释,也没有找到这个流行的重置CSS中的问题的参考.

我错过了什么?

E.M*_*.M. 9

这是IE7及更低版本的黑客攻击.IE7及更低版本将跳过星号并继续正常解析CSS.其他浏览器将忽略整个规则.

例如,由于CSS将使用规则的最后声明版本,因此执行以下操作将导致IE7及以下版本使用font-size113%,而其他浏览器使用font-size100%的段落.

p { font-size: 100%; *font-size: 113%; }
Run Code Online (Sandbox Code Playgroud)

webdevout.net上有更多信息.

我个人认为,为了解决IE的破坏,使用这些黑客是可以接受的.显然,雅虎!感觉是一样的.

  • 虽然我不是纯粹主义者,但我仍然倾向于将垃圾扔进IE条件(更关注丑陋而不是有效性.) (4认同)

SLa*_*aks 6

这可能是IE兼容性攻击.

有一些CSS语法错误,某些浏览器(特别是IE 6)会忽略,而其他浏览器则不会.一些CSS文件将使用这些错误来制定一个浏览器将看到而另一个浏览器不会看到的规则.

编辑:有关完整列表,请参阅此处.在您的特定情况下,该规则将仅由IE 7或更低版​​本看到.

  • 是的,只需使用*获取声明并将它们放在没有*的IE条件CSS文件中,然后就可以验证了. (2认同)