Сопоставление шрифтов

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

1. Агент пользователя получает доступ к базе данных свойств шрифтов. В ней перечислены различные CSS-свойства всех шрифтов, к которым имеет доступ агент пользователя. Как правило, это шрифты, установленные на компьютере, хотя там могут находиться и другие (например, агент пользователя может иметь собственные встроенные шрифты). Если агент пользователя находит два идентичных шрифта, он просто проигнорирует один из них.

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


На основании этого списка агент пользователя осуществляет начальный выбор семейства шрифтов, применяемых для отображения документа. Если существует полностью соответствующий этим параметрам шрифт, то его и выбирает агент пользователя. В противном случае ему надо сделать еще кое-что:

a. Шрифт сначала сопоставляется по свойству font-style. Ключевому слову italic соответствует любой шрифт, отмеченный как «italic» или «oblique». Если среди доступных нет ни одного из таких шрифтов, сопоставление завершается неудачей.

b. Следующая попытка подбора соответствия проводится для свойства font-variant. Любой шрифт, не отмеченный как «small-caps», считается normal. Любой шрифт, обозначенный как «small-caps», или который допускает синтез стиля капитель, или в котором строчные буквы заменяются прописными, может быть поставлен в соответствие по свойству small-caps.

c. Далее подбираем соответствие по свойству font-weight. Благодаря способу обработки font-weight в CSS (рассмотренному ранее в этой главе), эта операция никогда не заканчивается неудачей.

d. Затем беремся за свойство font-size. Сопоставление в данном случае должно проводиться с учетом определенного допускаемого отклонения, но устанавливает эту погрешность агент пользователя.


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

3. Если на шаге 2 не найдено соответствие, агент пользователя ищет
альтернативные шрифты в рамках того же семейства шрифтов. Если он находит какой-то адекватный шрифт, для него повторяются этапы шага 2.

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

5. Наконец, если соответствие не найдено и все альтернативные шрифты проверены, агент пользователя выбирает применяемый по умолчанию шрифт для данного базового семейства шрифтов и делает все возможное, чтобы представить элемент правильно. Весь этот процесс долог и утомителен, но он помогает понять, как агенты пользователя выбирают шрифты. Например, вы решили применить в документе Times или какой-нибудь другой шрифт антиква:

body {font-family: Times, serif;}

Агент пользователя должен проверить символы каждого из элементов и определить, может ли Times предоставить соответствующие символы.


В большинстве случаев он может сделать это без проблем. Однако предположим, что в параграфе встретился китайский иероглиф. Шрифт Times ничего не может сопоставить с этим символом, поэтому агенту пользователя надо как-то обработать его или найти другой шрифт, который может представить этот элемент. Конечно, любой западный шрифт вряд ли содержит иероглифы, но наверняка существует шрифт (назовем его AsiaTimes), который агент пользователя мог бы применить для отображения этого элемента или просто одного символа. Таким образом, либо весь параграф может быть представлен с помощью AsiaTimes, либо его текст может быть оформлен шрифтом Times, за исключением одного иероглифа, который отображается шрифтом AsiaTimes.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела CSS на эту тему:
Абсолютные размеры
Варианты шрифтов
Загрузка шрифтов
Задание семейства шрифтов
Интеллектуальное сопоставление шрифтов

Вернуться в раздел: CSS / 5. Шрифт