2011-09-14 38 views
4

例如:空的CSS聲明的預期行爲是什麼?

.foo { font-family: ; font-size: ; } 

我看到在IE9和Chrome不同的行爲。 IE9似乎用它來清除這些屬性(儘管目前這種行爲在我的不同頁面上並不一致)。

在Chrome中,它似乎簡單地忽略它。

什麼是真正的預期行爲?那甚至是有效的CSS?

+1

可以使用W3C驗證服務,以找出是否是合法與否:http://jigsaw.w3.org/css-validator(「授人以漁」和諸如此類的東西) –

+0

@Matt Ball謝謝!雖然,現在不工作:) – Matt

回答

7

這是無效的CSS。

瀏覽器應該忽略沒有值的聲明(並且只有每個聲明,而不是整個塊或無效聲明後的所有內容)。從spec(省略不相關的代碼的示例):

  • 格式錯誤聲明。用戶代理必須通過閱讀直到聲明結束時解析聲明時遇到意外的標記,同時觀察匹配(),[],{},「」和「'對的規則,並正確處理轉義。例如,格式錯誤的聲明可能缺少屬性,冒號(:)或值。以下都是等價的:

    p { color:green } 
    p { color:green; color: } /* malformed declaration missing value */ 
    p { color:red; color:; color:green } /* same with expected recovery */