除非还设置了字体大小,否则通过style.font设置font-family不起作用

sta*_*wed 3 javascript css fonts

我想通过一些JavaScript设置一些文本的字体.出于某种原因,我似乎只能在设置时也这样做font-size.这样可行:

el.style.font = "10px arial, serif"
Run Code Online (Sandbox Code Playgroud)

但事实并非如此

el.style.font = "arial, serif"
Run Code Online (Sandbox Code Playgroud)

(jsfiddle例子)

我知道还有其他方法可以设置字体,但由于其他原因,这种方法很方便 - 为什么它不起作用?

我已经检查了Firefox和Chrome,所以我认为这是我不理解的东西而不是bug.

Der*_*會功夫 5

因为根据W3C 的定义,font-size如果包括,必须在那里font-family.

[
    [ <‘font-style’> || <font-variant-css21> || <‘font-weight’> || <‘font-stretch’> ]?
    <'font-size'>
    [ / <'line-height'> ]?
    <'font-family'>
]             | 
caption       |
icon          |
menu          |
message-box   |
small-caption |
status-bar
Run Code Online (Sandbox Code Playgroud)

编辑:已更新为CSS3定义.