Чи потрібно обертати лапки навколо імен сімейств шрифтів у CSS?


92

Пам'ятаю, я давно чув, що вважалося "найкращою практикою" обертати лапки навколо назв шрифтів, які містять кілька слів у властивості сімейства шрифтів CSS, наприклад:

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

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

Отже, чи є якась логіка цього емпіричного правила, чи це просто міф? Це була проблема зі старими браузерами, яка більше не стосується поточних версій? Я роблю це так довго, що ніколи не зупинявся, думаючи, чи це насправді потрібно.


Я вважаю, що це гарна ідея цитувати кожну сім’ю шрифтів, за винятком загальних. Це тримає речі послідовно.
Micah Henning

Відповіді:


78

Специфікація CSS 2.1 говорить нам, що:

Імена сімейств шрифтів повинні бути вказані як лапки, або без котирувань як послідовність одного або кількох ідентифікаторів. Це означає, що більшість розділових символів і цифр на початку кожного маркера повинні бути екрановані в іменах сімейств шрифтів без лапок.

Далі йдеться:

Якщо послідовність ідентифікаторів вказана як ім'я сімейства шрифтів, обчислюваним значенням є ім'я, перетворене у рядок шляхом об'єднання всіх ідентифікаторів у послідовності одинарними пробілами.

Щоб уникнути помилок при екрануванні, рекомендується цитувати назви сімейств шрифтів, які містять пробіли, цифри або розділові знаки, крім дефісів:

Так що так, є різниця, але така, яка навряд чи спричинить якісь проблеми. Особисто я завжди цитував назви шрифтів, коли вони містять пробіли. У декількох (імовірно дуже рідкісних) випадках цитати є абсолютно необхідними:

Імена сімейств шрифтів, які збігаються зі значенням ключового слова ("наслідувати", "засечка", "без засічок", "монопростір", "фантазія" та "скоропис"), повинні бути вказані, щоб уникнути плутанини з ключовими словами з однаковими назвами. Ключові слова "початковий" та "за замовчуванням" зарезервовані для подальшого використання, і їх також потрібно вказувати у цитатах, коли вони використовуються як імена шрифтів.

Також зверніть увагу, що розділові знаки, такі як / або! всередині ідентифікатора може також знадобитися цитувати або екранувати.


6
initialі також defaultє ключовими словами (вони зарезервовані для подальшого використання). Див. Неіснуючі імена сімейств шрифтів у CSS .
Матіас Байнс,

21

Відповідно до специфікації модуля шрифтів CSS Level 3 від жовтня 2013 р., " Імена сімейств шрифтів, крім загальних сімей, повинні або вказуватися у рядках, або в лапки як послідовність одного або декількох ідентифікаторів ". Тож НЕ потрібно вкладати їх у лапки.

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

Загальні імена сімейних шрифтів ('serif', 'sans-serif', 'скоропис', 'fantasy' та 'monospace') НЕ ПОВИННІ цитувати, оскільки вони насправді є ключовими словами.


0

Якщо стиль вбудований, як <font style="font-family:Arial Narrow">some texte</font>, це працює.

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

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

У FireFox джерело покаже & quot; як це: "

без цього фокусу, це:

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.