Как работает свойство насыщенности

Чтобы понять, как агент пользователя устанавливает толщину, или насыщенность, данного варианта шрифта, не упоминая о том, как происходит ее наследование, проще всего начать с рассказа о ключевых словах от 100 до 900. Эти ключевые слова-числа были определены для обеспечения соответствия общепринятой практике разработки шрифтов, когда шрифту присваивается девять уровней насыщенности. Например, OpenType основывается на числовой шкале, состоящей из девяти значений. Если в шрифт встроены эти уровни насыщенности, числа непосредственно сопоставляются с предопределенными уровнями, где 100 – самый легкий вариант начертания шрифта, а 900 – самый плотный.

Кстати, эти числа не определяют конкретной плотности. Спецификация CSS говорит только о том, что каждое число соответствует плотности, по крайней мере не меньшей, чем плотность предшествующего ему числа. Таким образом, 100, 200, 300 и 400 могут соответствовать одному и тому же слабо насыщенному варианту начертания шрифта; 500 и 600 – одному и тому же варианту средней насыщенности; а 700, 800 и 900 могут формировать одинаковое очень насыщенное начертание. Поскольку ключевого слова, соответствующего варианту менее плотному, чем обозначенный предыдущим ключевым словом, нет, все будет в порядке.

Кстати, числа не задают собственных значений свойства font-weight, а соответствуют определенным общепринятым вариантам шрифтов.Значение 400 определено эквивалентом normal, а 700 соответствует bold.


Остальные числа не сопоставляются с другими значениями font-weight, но они могут соответствовать общепринятым именам вариантов шрифтов. Если существует вариант, обозначенный, например, «Normal», «Regular», «Roman» или «Book», то ему присваивается значение 400, а любому варианту с меткой «Medium» ставится в соответствие 500. Однако если «Medium» – единственный доступный вариант шрифта, он сопоставляется с числом 400, а не с числом 500. Еще больше придется потрудиться агенту пользователя, если в данном семействе шрифтов определено меньше девяти уровней насыщенности. В этом случае он должен заполнять пробелы по следующей заранее определенной схеме:

• Если значение 500 не поставлено в соответствие, ему назначается такая же насыщенность, как и для 400.
• Если значение 300 не поставлено в соответствие, ему присваивается вариант, менее насыщенный, чем 400. Если нет доступных менее насыщенных вариантов, 300 назначается тот же вариант, что и для 400. В этом случае обычно он будет «Normal» или «Medium». Этот метод также применяется к 200 и 100.
• Если значение 600 не поставлено в соответствие, ему присваивается вариант, более насыщенный, чем 400. Если нет доступных более насыщенных вариантов, 600 назначается тот же вариант, что и для 500.


Этот метод также применяется к 700, 800 и 900.

Чтобы проиллюстрировать эту схему распределения плотностей, рассмотрим три примера назначения плотности шрифта. В первом примере допустим, что семейство шрифтов Karrank% объединяет шрифты OpenType и поэтому имеет девять уровней насыщенности. В таком случае каждому уровню назначается число и ключевым словам normal и bold сопоставляются числа 400 и 700 соответственно. Во втором примере рассмотрим семейство шрифтов Zurich, о котором мы говорили в начале этого раздела. Гипотетически его варианты могут быть сопоставлены с числовыми значениями font-weight.

Первые три числовых значения соответствуют наименее насыщенному начертанию. Гарнитура «Regular», как и ожидалось, получает ключевое слово normal и числовое значение насыщенности 400. Поскольку имеется шрифт «Medium», ему присваивается число 500. Здесь нет варианта, которому можно было бы присвоить 600, поэтому данное число сопоставляется с гарнитурой «Bold», которой также соответствую значения 700 и bold. И наконец, числа 800 и 900 присваиваются вариантам «Black» и «UltraBlack» соответственно. Обратите внимание, что последнее назначение имеет место, только если для гарнитур в шрифте явно заданы два последних уровня насыщенности.


В противном случае агент пользователя может проигнорировать их и назначить 800 и 900 гарнитуре «Bold» или присвоить оба этих значения тому или иному варианту «Black». Наконец, рассмотрим сокращенную версию шрифта Times. Два варианта плотности: «TimesRegular» и «TimesBold».

Конечно, назначение ключевых слов normal и bold вполне понятно. А вот числа от 100 до 300 сопоставлены гарнитуре «Regular», потому что нет доступных гарнитур с менее насыщенным начертанием. Как и следовало ожидать, 400 отходит к «Regular», а как насчет 500? Это значение присваивается гарнитуре «Regular» (или normal), потому что нет доступных гарнитур «Medium»; таким образом, оно присваивается той же гарнитуре, что и значение 400. Что касается всех остальных числовых значений, 700, как обычно, отходит к bold, тогда как 800 и 900 по причине отсутствия более насыщенной гарнитуры присваиваются ближайшей менее насыщенной гарнитуре, каковой является «Bold». И наконец, 600 назначается следующей более насыщенной гарнитуре, которой, конечно же, является «Bold». Свойство font-weight – наследуемое, поэтому если для абзаца должно быть задано значение bold:

p.one {font-weight: bold;}

то все его дочерние элементы унаследуют это начертание.


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

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

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

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