2009-08-30 105 views
7

我试图使用W3C CSS验证器验证我的网站的CSS。不幸的是,YUI框架中的reset-min.css在字符串“{* font-size:100%;”上产生了解析错误。为什么YUI重置CSS没有通过验证?

The validator results.

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

警告:预期的声明,但是发现 '*'。跳到下一个声明。

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

我错过了什么?

回答

9

这是IE7及更低版本的黑客攻击。 IE7和更低版本将跳过星号并继续正常解析CSS。其他浏览器将忽略整个规则。例如,由于CSS将使用规则的最后声明版本,因此执行以下操作会导致IE7及更低版本使用113%的font-size,而其他浏览器对段落使用100%的font-size

p { font-size: 100%; *font-size: 113%; } 

有一个更多的信息在webdevout.net

就我个人而言,我认为使用这种黑客来解决IE的破坏是可以接受的。显然,雅虎!感觉是一样的。

+4

虽然我不是纯粹主义者,但我仍然倾向于将这些垃圾投入IE条件式(更关心丑陋而不是有效性)。 – 2009-08-30 21:01:58

6

这可能是一个IE兼容性黑客。

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

编辑:有关完整列表,请参阅here。在你的特定情况下,只有IE 7或更低版​​本才能看到该规则。

+2

是的,只需抓住与*的声明,并把他们在没有*的IE条件CSS文件,然后你可以验证。 – 2009-08-30 20:59:33

相关问题