2009-08-30 39 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

相關問題