除非同时设置字体大小,否则通过style.font设置字体族不起作用。

3

我想通过JavaScript设置一段文本的字体。但是不知道为什么,只有在设置font-size时才能这样做。所以这样做可行:

el.style.font = "10px arial, serif"

但是这并不会。
el.style.font = "arial, serif"

我知道有其他设置字体的方法,但出于其他原因,这种方法会更方便 - 为什么它不起作用?

我已经检查了Firefox和Chrome,所以我认为这是我不理解的问题,而不是一个错误。

jsfiddle示例

2个回答

5
根据 W3C 的 定义,如果你使用 font-family,则必须同时指定 font-size 属性。
[
    [ <‘font-style’> || <font-variant-css21> || <‘font-weight’> || <‘font-stretch’> ]?
    <'font-size'>
    [ / <'line-height'> ]?
    <'font-family'>
]             | 
caption       |
icon          |
menu          |
message-box   |
small-caption |
status-bar

编辑:已更新为CSS3定义。


1
SO的魅力之一。 :p - reisio
我不记得以前在SO上使用时它会如此糟糕。 :) (我还收到了约7个人的回复,只是错过了重点答案,一旦被踩后就删除了。)当然,这是正确的答案。 - starwed
当他们不费心删除它们时,你就会知道情况变得更糟了。 :p - reisio
我还没有这么快,但是看这个! - reisio

1
你把 fontfont-family (fontFamily 在 JavaScript 中的说法) 搞混了。

1
准确来说:在简写字体规范中,大小不是可选的。 - Ulrich Schwarz
啊,谢谢。我确实没有混淆这两个概念,但我没有意识到大小是必需的。@UlrichSchwarz,你能把它写成答案吗? - starwed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接