一尘不染

我是否需要在CSS中用字体系列名称引起双引号?

css

我记得很久以前就听说过,在CSS font-family属性中将引号括起来包含多个单词的字体名称被认为是“最佳实践”,例如:

font-family: "Arial Narrow", Arial, Helvetica, sans-serif;

对于它的麻烦,我尝试从中删除引号,"Arial Narrow"而Safari和Firefox在呈现它时没有任何问题。

那么,这种经验法则是否有逻辑,还是只是一个神话?较旧的浏览器是否有问题,不再适用于当前版本?我这样做已经有很长时间了,以至于我从未停止思考这是否真的必要。


阅读 459

收藏
2020-05-16

共1个答案

一尘不染

在CSS 2.1规范告诉我们:

字体系列名称必须要么用引号引起来,要么用引号引起来,或者不用一个或多个标识符序列来引号。这意味着每个令牌开头的大多数标点符号和数字都必须以未加引号的字体系列名称进行转义。

它继续说:

如果将标识符序列作为字体系列名称提供,则计算值是通过将序列中的所有标识符用单个空格连接起来而转换为字符串的名称。

为避免转义时出错,建议引用字体系列名称,其中包含空格,数字或标点符号(连字符除外):

是的,这是有区别的,但是不太可能引起任何问题。就个人而言,当字体名称包含空格时,我总是会引用它们。在少数情况下(可能非常罕见),绝对需要使用引号:

必须引用恰好与关键字值相同的字体系列名称(“ inherit”,“ serif”,“ sans-serif”,“ monospace”,“
fantasy”和“ cursive”),以防止与关键字混淆具有相同的名称。关键字“ initial”和“
default”保留供将来使用,并且在用作字体名称时也必须加引号。

另请注意标点符号如/或!标识符中的可能还需要加引号或转义。

2020-05-16