这个字体:速记属性语法有效吗?(我对规范的解读是肯定的,但我安装的浏览器中有一半不同意.)

Eta*_*ner 8 css fonts

这有效吗? font: bold 10px/13px inherit;

根据我对规格的看法,这应该意味着'粗体'的字体粗细,'继承'的字体系列,字体大小'10px',以及'13px'的行高.

它似乎在Internet Explorer 8(8.0.6001.18702)中正常工作.

它在Windows上的Safari 5.0.4(7533.20.27)中正常工作.

Opera 11.01(build 1190)和Firefox 3.6.16都记录了它的错误.

我还没有尝试过Chrome或Firefox 4.

如果这确实应该是有价值的,这个解析错误是一个已知的问题吗?

加分:

  • W3验证器还将此报告为无效.
  • 'font:bold 10px inherit;','font:bold 10px/13px;'或'font:bold 10px;' 在Firefox中正常工作.

更新

正如Adam Wagner在他的回答中指出的那样,由于CSS2.1规范的§C.3.1,我的尝试价值实际上是无效的(尽管我对该规范建议的天真读物).

Ada*_*ner 9

我认为问题在于你的价值的"继承"增加.

根据规格:

[[<'font-style'> || <'font-variant'> || <'font-weight'>]?<'font-size'> [/ <'line-height'>]?<'font-family'>] | 标题| 图标| 菜单| 消息框| 继承

我认为上面列出的粗体部分是一个选项,"caption","icon","menu","message-box"和"inherit"是剩下的选项.

简而言之,尝试:font:bold 10px/13px

更新:

看来webkit有一个关于这个问题的优秀错误报告.关于firefox不确定.(https://bugs.webkit.org/show_bug.cgi?id=20181)

另外,正如票证中提到的那样,2.1规范解决了这个问题:

"速记属性采用子属性值列表或值'继承'.不能将'继承'与其他子属性值混合,因为无法指定应用'继承'的子属性.许多速记的定义属性没有强制执行此规则:'border-top','border-right','border-bottom','border-left','border','background','font','list-style','提示'和'大纲'."

http://www.w3.org/TR/CSS21/changes.html#q142


Guf*_*ffa 5

根据标准,您不能将继承与font复合样式中的其他选项一起使用。

必须指定 font-size 和 font-family 值(如果您不使用任何根本不使用它们的表单)。

所以,你不能用它只设置粗细、大小、行高,而是继承家族。

  • @Etan Reisner:您可以在“font-family”样式中使用“inherit”,但这并不意味着您可以在“font”样式中使用它来代替字体系列名称。它不能在复合样式中以这种方式使用,因为值“inherit”不能给出任何关于应继承哪些样式组件的指示。 (2认同)