例如:
.foo { font-family: ; font-size: ; }
我在IE9和Chrome中看到了不同的行为。 IE9似乎使用它来清除这些属性(尽管目前这种行为在我的不同页面上并不一致)。
在Chrome中,它似乎完全忽略了它。
真正的预期行为是什么?这甚至是有效的CSS吗?
答案 0 :(得分:7)
这是无效的CSS。
浏览器应该忽略没有值的声明(只有每个声明,而不是整个块或无效声明后的所有声明)。从spec(省略不相关的代码示例):
格式错误的声明。用户代理必须处理在解析声明时遇到的意外令牌,方法是阅读声明结尾,同时遵守匹配(),[]对的规则, {},“”和“',并正确处理转义。例如,格式错误的声明可能缺少属性,冒号(:)或值。以下都是等效的:
p { color:green } p { color:green; color: } /* malformed declaration missing value */ p { color:red; color:; color:green } /* same with expected recovery */
答案 1 :(得分:2)
Chrome是对的。请参阅:p { color:green; color: }
此处:
http://www.w3.org/TR/CSS2/syndata.html#parsing-errors