2012-05-08 35 views
1

我把一些css通過w3驗證器(我知道這是一種毫無意義,因爲它在css3上很差),但是我發現了一些我試圖解決的問題,可能是錯誤的。CSS字體速記驗證

這是它發現的錯誤之一,但我沒有看到任何錯誤。也許你們可以看到我不喜歡的東西。

是它給的錯誤是...

值錯誤:字體/不是FONT-FAMILY值:大膽3.7em/0.82的影響,木炭,無襯線

該代碼是...

font:bold 3.7em/0.82 Impact, Charcoal, sans-serif; 

JJ

+0

在過去默認情況下,驗證器對CSS 2進行檢查併爲CSS 3吐出錯誤,除非您明確要求它檢查3而不再檢查。 – reisio

回答

3

日油墨相當肯定,這肯定是驗證器(you're not the only one with the problem)中的一個錯誤,因爲我從這個official specifications上取下了一個例子,並且得到了同樣的錯誤。

我證實了這個:

* { font: bold 3.7em/0.82 Impact, Charcoal, sans-serif; } 
p { font: x-large/110% "New Century Schoolbook", serif } /* from specs */ 

,並得到這樣的:

Sorry! We found the following errors (2) 
URI : TextArea 
1 * Value Error : font/is not a font-family value : bold 3.7em/0.82,Impact,Charcoal,sans-serif 
2 p Value Error : font/is not a font-family value : x-large/110% "New Century Schoolbook",serif 

來源:

拼圖CSS驗證器不完美。它是軟件,所以它包含錯誤。在這些情況下做的最好的事情是檢查有關主題的規範,並嘗試驗證示例代碼,如果它確實在這種情況下驗證,請嘗試查看它與您自己的不同之處。

+0

我不覺得有點愚蠢,因爲沒有用Google搜索它。我只是假設我搞砸了。你們很聰明。 – doubleJ

2

The bug was reported 2012年5月3日,在W3C CSS Validator的郵件列表中。目前還沒有答覆,而且我希望在錯誤得到解決之前需要幾天甚至幾周的時間。這可能與他們重寫與字體相關的處理屬性值的某些部分有關,在這個過程中還出現了其他一些錯誤(現在已修復)。

要麼等待開發並手動檢查您的CSS代碼的這種類型,或使用單個字體屬性而不是font速記。 CSS shorthands通常是有風險的,不是由於瀏覽器的bug(不再是由於瀏覽器的bug),而是由於概念上的困難以及人們傾向於使用複雜的語義和語法特點的構造錯誤。

由於這些原因,重寫現有代碼的大部分並不是很有用,但對於單個規則和新代碼,最好避免使用'font:bold 3.7em/0.82 Impact,Charcoal,sans-serif'。 (即使它是符合),並使用單獨的屬性,而不是:

font-weight: bold; 
font-size: 3.7em; 
line-height: 0.82; 
font-family: Impact, Charcoal, sans-serif; 

爲什麼人們使用font速記主要的原因可能是他們使用相同設置在很多地方,在一些規則。通常可以,並且更好的可維護性和代碼可讀性,只需編寫一次設置,並在規則中使用合適的選擇器列表,僅包含所需的元素。

+1

W3C CSS Validator中的這個錯誤現在已經修復。如果您仍然觀察它,請通過郵件列表報告,如http://jigsaw.w3.org/css-validator/Email.html所述 –