При создании CSS-правил сталкивались ли вы с ситуацией, когда при откате (fallback) шрифта у последнего менялась пропорциональность и текст начинал выглядеть больше или меньше оригинального?
Возможно, новое замечательное свойство
из стандарта CSS3 поможет нам исправить ситуацию?1
font-size-adjust
Что делает свойство font-size-adjust
Первое, что нужно сделать - это использовать браузер Firefox для того, чтобы страница с примером отображалась правильно. Да, не Safari, а только Firefox!
Свойство
позволяет установить оптимальный коэффициент пропорциональности при использовании отката шрифта; если шрифт-заменитель имеет коэффициент пропорциональности, отличающийся от такого же коэффициента у главного шрифта, высота текста 1
font-size-adjust
(которая приблизительно равна размеру буквы 1
x-height
этого шрифта в нижнем регистре) останется неизменной.1
х
Давайте рассмотрим рисунок ниже:
Как видим на рисунке, шрифт Baskerville и Georgia имеют разный коэффициент пропорциональности. Если произойдет замещение шрифта (с учетом того, что шрифт Baskerville является главным), то в реальности размер шрифта визуально будет больше, при одинаковой величине.
Прим. переводчика. Еще раз - своими словами. На картинке видно, что одинаковые буквы А размером 320 пикселей у шрифта Baskerville и у шрифта Georgia на самом деле не одинаковые. Пропорции (о которых говорит Inyaili) букв у этих шрифтов разные! Теперь вспомним, как задается обычно шрифт в CSS-правилах.
К примеру, так:
или же так:
То есть, в правилах мы устанавливаем сначала главный шрифт Baskerville, который должен отображаться на странице; и вспомогательный шрифт Georgia, который должен отображаться, если браузер не найдет главный шрифт Baskerville (это и есть откат шрифта, о котором упоминается в этой статье). В принципе - это основы CSS .
Теперь, если принимать во внимание картинку “Сравнение двух шрифтов”, то нетрудно представить, что произойдет при такой замене (откате).
Шрифт Baskerville заменится шрифтом Georgia, у обоих при этом в правилах CSS установлена одинаковая высота в 320 пикселей. Но фактическая высота (точнее - пропорции) вспомогательного шрифта Georgia больше, чем у первостепенного Baskerville! Догадайтесь, что произойдет с готовым дизайном страницы при таком откате?
При использовании свойства
значение свойства 1
font-size-adjust
для шрифта-заменителя будет разделено на значение 1
font-size
.1
font-size-adjust
Не путайте свойство
со свойством 1
font-size-adjust
, которое используется для подстройки размера текста на iPhone.1
-webkit-text-size-adjust
Как определить значение свойства font-size-adjust
Отрывок из спецификации W3C однозначен:
Коэффициент пропорциональности для выбранных шрифтов может быть высчитан путем сравнения одного и того же текста, но с разным значением
. Если значение свойства
1 font-size-adjustподобрано верно, то при одинаковом размере шрифта текст останется неизменным для всех используемых на странице шрифтов.
1 font-size-adjust
Ниже я собираюсь на примере повторить вышесказанное. Давайте посмотрим на следующий код, в котором имеется параграф с двумя
.1
span
Оба элемента
наследуют свойство 1
span
от своего родителя (элемента 1
font-family
), но второй элемент 1
p
также имеет еще и свойство 1
span
, заданное через класс 1
font-size-adjust
, значение которого выбрано наугад - 1
adjust
.1
0.5
Если вы откроете страницу примера, то взгляните на образец слева: высота красных квадратов не совпадает - значение свойства
подобрано неверно.1
font-size-adjust
У вас все квадраты на странице примера имеют одинаковую высоту? Что я говорила?
После нескольких экспериментов я выбрала значение
. И CSS-код, создающий второй пример (расположенный на странице справа).1
0.455
Если вы снова перейдете на страницу примера, то обнаружите, что квадраты с зелеными границами имеют одинаковую высоту (прим. переводчика - у меня они имели не совсем одинаковую высоту) - то есть теперь у нас величина свойства
для выбранных шрифтов установлена верно.1
font-size-adjust
Пример работы свойства font-size-adjust
Для того чтобы показать, как в действительности работает свойство
для текста, мною был создан следующий пример.1
font-size-adjust
На этой странице
состоит из следующих шрифтов: Calibri, Lucida Sans и Verdana (именно в этом порядке шрифты должны отображаться на странице в окне браузера).1
font stack
Браузер Safari генерирует эту страницу следующим образом:
А вот так генерирует эту страницу браузер Firefox:
Как видите, браузер Firefox поддерживает одинаковую x-высоту (
) букв в зависимости от того, какой шрифт используется.1
x-height
Мною не рассматривался вопрос выравнивания текста (свойство
), так как цель этой статьи была показать, каким образом свойство 1
text-align
может быть применено для сохранения целостности и удобочитаемости текста.1
font-size-adjust
Кроме того, даже не смотря на то, что первый блок
имеет корректный font stack, мне пришлось вручную прописывать в правилах шрифты Lucida Sans и Verdana для остальных блоков 1
div
. Так что вы (и я) можете заметить разницу несмотря на то, что установлены все три шрифта.1
div
Заключение
Догадываюсь, что использование свойства
в конечном счете имеет только негативное применение. Но этот вопрос может быть заголовком уже другой статьи, цель же этой - просто пример использования достаточно малоизвестного CSS3-свойства, которое может быть полезным в некоторых случаях.1
font-size-adjust
Признаюсь, что я не тестировала свойство
в реальных условиях, поэтому была бы рада услышать ваши отзывы по этому поводу. Данное свойство на сегодняшний день поддерживается только браузером Firefox версии от 1.0 до 3.0.1
font-size-adjust
У Inyaili de Leon есть еще одна интересная статья, которую планируется мною прочитать - “Будущее CSS типографики” (The Future Of CSS Typography) на малоизвестном ресурсе для дизайнеров Smashing Magazine.
Примечание переводчика: интересная, как и всегда, у девушки получилась статья. Для меня свойство
вообще было открытием. Помимо этого, есть масса других статей (в том числе русскоязычных) на тему
1 font-size-adjust, но эта мне показалась самой лучшей, так как автор не лениться пробовать на практике те вопросы, которые описывает в статье. Сделал перевод в меру своих сил, поэтому могут быть неточности, конечно.
1 font-size-adjust
Оригинал статьи расположен по адресу - “The Little Known font-size-adjust CSS3 Property”.