【问题标题】:Setting font-family via style.font doesn't work unless font size is also set除非还设置了字体大小,否则通过 style.font 设置字体系列不起作用
【发布时间】:2017-03-03 17:42:49
【问题描述】:

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

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

但这不是

el.style.font = "arial, serif"

(jsfiddle example)

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

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

【问题讨论】:

    标签: javascript css fonts


    【解决方案1】:

    因为根据 W3C 的 the definition,如果包含 font-familyfont-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 定义。

    【讨论】:

    • SO 的所有魅力。 :p
    • 我不记得当我以前使用过 SO 时它是如此糟糕。 :) (我也有大约 7 人回复了缺少要点的答案,但一旦被否决就将其删除。)当然,这是正确的答案。
    • 当他们不打扰删除它们时,您就会知道情况变得更糟了。 :p
    • 我没有这么快……但是看这个!
    【解决方案2】:

    您将font 误认为font-family(在JS 中是fontFamily)。

    【讨论】:

    • 确切地说:简写字体规范中的大小不是可选的。
    • 啊,谢谢。我当然没有混淆这两者,但我没有意识到尺寸不是可选的。你能把它作为答案@UlrichSchwarz 吗?
    猜你喜欢
    • 2023-03-17
    • 2017-08-12
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    相关资源
    最近更新 更多