Нужно ли обертывать кавычки вокруг фамилий шрифтов в CSS?


Я помню, как давно слышал, что считалось "лучшей практикой" обертывать кавычки вокруг имен шрифтов, содержащих несколько слов в свойстве семейства шрифтов CSS, например:

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

черт возьми, я попытался удалить кавычки из "Arial Narrow" и Safari и Firefox не имеют никаких проблем с его рендерингом.

3 84

3 ответа:

The CSS 2.1 spec говорит нам, что:

имена семейств шрифтов должны быть либо в кавычках, либо без кавычек как последовательность одного или нескольких идентификаторов. Это означает, что большинство знаков препинания символы и цифры в начале каждого токена должны быть экранированы некотируемые фамилии шрифтов.

Он говорит:

Если последовательность идентификаторов задана как имя семейства шрифтов, то вычисленное значение имя преобразуется в строку путем объединения всех идентификаторы в последовательности по одиночным пробелам.

чтобы избежать ошибок в экранировании, рекомендуется цитировать семейство шрифтов имена, содержащие пробелы, цифры или знаки препинания кроме дефисов:

Так что да, есть разница, но вряд ли вызовет какие-либо проблемы. Лично я всегда цитировал имена шрифтов, когда они содержат пробелы. В нескольких (предположительно очень редких) случаях котировки являются абсолютно необходимо:

имена семейств шрифтов, которые совпадают со значением ключевого слова ("наследовать", "засечка", "без засечек", "моноширинное", "фантазия" и 'cursive') должны быть процитированы, чтобы предотвратить путаницу с ключевыми словами с такое же имя. Ключевые слова 'initial ' и' default ' зарезервированы для будущего использования, а также должны быть указаны при использовании в качестве имени шрифта.

Также обратите внимание, что знаки препинания, такие как / или ! в пределах идентификатора также может нужно для цитирования или экранирования.

по словам CSS Fonts Module Level 3 spec октября 2013 года,"имена семейств шрифтов, отличные от общих семейств, должны быть либо заключены в кавычки в виде строк, либо не заключены в кавычки в виде последовательности одного или нескольких идентификаторов". поэтому вам не нужно заключать их в кавычки.

однако, если вы этого не сделаете "большинство знаков препинания и цифр в начале каждого маркера должны быть экранированы". чтобы избежать ошибок, W3C на самом деле рекомендует цитировать фамилии шрифтов, содержащие пробелы, цифры, знаки препинания или значения ключевых слов ('наследовать', 'засечки' и др.).

родовые имена семейства шрифтов (’serif‘,’ sans-serif‘,’ cursive‘,’ fantasy ‘и’ monospace') не должны цитироваться, поскольку они на самом деле являются ключевыми словами.

Если стиль встроен, например <font style="font-family:Arial Narrow">some texte</font>, это работает.

но если имя шрифта police содержит некоторые специальные символы, или начинается с числа содержит кавычки или другие странные вещи (например, "01 Digitall" или "a_CityNovaTitulB&WLt" или "Bailey'SCAR"), вы должны использовать специальный синтаксис с ", который может быть применен ко всем видам своих шрифтов имена:

<font style="font-family:&quot;a_CityNovaTitulB&WLt&quot; , &quot;Bailey'sCar&quot;">some text</font>

в FireFox,источник покажет " как это: "

без этого трюка, это:

<font style="font-family:a_CityNovaTitulB&WLt ,Bailey'sCar">some text</font>

не работает автоматически в любом браузере. Это полезно для имени шрифта ведьма начать с числа, как "8 Pin".