什么时候CSS font-family值应该使用引号?

时间:2013-03-05 16:17:05

标签: css css3 fonts font-face

什么时候CSS'font-family'的值有引号?

我见过font-family: arialfont-family: "arial"

作为一个具体的例子,我用这种方式声明一种字体:

@font-face {
    font-family: 'entypo';
    font-style: normal;
    font-weight: 400;
    src: url('/css/fonts/entypo.woff') format('woff');
}

让元素使用此font-family的正确CSS是什么?

3 个答案:

答案 0 :(得分:8)

当字体本身具有"Times New Roman"

等空格时,您只需要引号

Arial不需要引号,但有些人使用"Arial"之类的引号更加一致。这只是个人偏好。

见贾斯汀的评论:font-family: times new roman;没有空格(jsFiddle)。

您可以按照通常的预期使用@font-face来呼叫新的font-family: 'entypo';。 (link

答案 1 :(得分:1)

回答这个问题:

http://www.w3.org/TR/CSS2/fonts.html#font-family-prop

为避免转义错误,建议引用包含除连字符以外的空格,数字或标点字符的字体系列名称:

body {font-family:“New Century Schoolbook”,serif}

必须引用与关键字值('inherit','serif','sans-serif','monospace','fantasy'和'cursive')相同的字体系列名称,以防止与关键字混淆同名。

答案 2 :(得分:1)

通过CSS 2.1 spec,字体名称​​ 需要如果它包含identifier characters以外的字符(这是一个比“Ascii字母更广泛的概念”)和数字“)和空格。所以font-family: foo bar是正确的,例如font-family: entypo当然。

编码风格是另一个问题。引用特定字体系列名称(与sans-serif等通用名称相反)始终是正确的,因此font-family: "entypo"也是正确的。

理论上,如果特定字体系列名称与通用名称一致(我认为没有人创建过这样的字体)或者其名称包含前导或尾随空格或连续空格,则还需要引用字体名称(但在他看来,没有人会以这种方式命名他的字体。)