Можно ли принудительно установить «приоритет шрифта» в таблицах стилей? - PullRequest
3 голосов
/ 30 сентября 2010

В различных браузерах, когда используется определенный шрифт (например, Helvetica Neue), если этот шрифт не найден, используется первый шрифт в ближайшем семействе.Поэтому, если бы мне нужно было указать, что Arial Narrow является базовым стилем шрифта для элемента, и у моего читателя не было этого шрифта, он перешел бы к первому доступному шрифту Arial, который система могла найти.

В качестве упражнения,многие сайты, такие как шрифты Helvetica (особенно версии «Neue» и «Condensed»).Как правило, они указывают font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;, полагая, что браузер будет перемещаться по этому конкретному пути, и каждый шрифт должен быть вкусным, при этом первый из перечисленных будет самым вкусным.Однако Firefox / IE / Chrome (так что я предполагаю, что браузеры webkit) не смогут найти нужный шрифт Helvetica и перейти непосредственно к первому шрифту, с которым они сталкиваются в семействе Helvetica.Можно было бы подумать, что это будет Helvetica, но в моей системе по умолчанию это Helvetica 95 Black.Я даже попытался переименовать файл шрифта, чтобы выяснить, не в этом ли причина, и, независимо от имени файла, результатом было то, что на странице по умолчанию использовалась Helvetica Black.Я обнаружил, что это также относится и к Arial.

Таким образом, кроме попыток учесть каждый отдельный вкус Helvetica, Arial, Verdana, Tahoma, до бесконечности, есть ли способ заставить браузерпрекратить «гадать» на семью и принять только тот шрифт, о котором идет речь?

1 Ответ

1 голос
/ 30 сентября 2010

Для начала, вот описание алгоритма соответствия шрифтов , как указано в спецификации CSS 2.1 (или CSS 3 , если вы предпочитаете). Однако это сложная проблема, о чем свидетельствует заявление об отказе от ответственности перед изложением деталей алгоритма:

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

Также обратите внимание, что вы должны заключать любое имя шрифта, содержащее пробел, в одинарные или двойные кавычки, как указано в разделе 15.3 .

...