空CSS声明的预期行为是什么?

时间:2011-09-14 21:52:13

标签: css

例如:

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

我在IE9和Chrome中看到了不同的行为。 IE9似乎使用它来清除这些属性(尽管目前这种行为在我的不同页面上并不一致)。

在Chrome中,它似乎完全忽略了它。

真正的预期行为是什么?这甚至是有效的CSS吗?

2 个答案:

答案 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