Отзывчивый веб-дизайн | страница 10
), но вы можете выбрать какой-нибудь другой, благо выбор сейчас достаточно большой.
В любом случае наш >h1
выглядит таким маленьким именно по этой причине: он наследует стиль >font size 100 %
, который мы задали родительскому элементу >body
, а установленный в браузере по умолчанию кегль – 16 пикселей.
Теперь, если пиксели нас устраивают, мы можем перевести значения из оригинал-макета непосредственно в CSS:
>h1 {
>font-size: 24px;
>font-style: italic;
>font-weight: normal;
>}
>h1 a {
>color: #747474;
>font: bold 11px Calibri, Optima, Arial, sans-serif;
>letter-spacing: 0.15em;
>text-transform: uppercase;
>text-decoration: none;
>}
Нет ничего плохого или неправильного в определении размера текста с помощью пикселей. Но в целях нашего эксперимента давайте начнем думать пропорционально и переведем значения кегля (>font-size
) из пикселей в относительные единицы, а вместо пикселей и будем использовать знакомые нам >em
.
Контекстное восстановление
Сейчас будет немного математики: берем целевое значение кегля и делим на кегль (>font size
) его контейнера, то есть контекста. В результате мы получаем желаемый кегль, выраженный в относительных и достаточно гибких единицах >em
.
Другими словами, относительный кегль можно рассчитать по следующей формуле:
>target ÷ context = result
(Отвлечемся на минутку. Лично у меня слово «математика» вызывает немедленный и серьезный приступ паники. У вас тоже? Стойте, не убегайте с криками – все не так страшно. Это говорит вам человек, который заменил курс математики в колледже курсом философии. Делайте, как я: просто посчитайте все на калькуляторе и скопируйте результат в CSS. Калькуляторы – просто спасение для таких, как мы, правда?)
Итак, формула у нас есть, давайте вернемся к нашему заголовку в >24px
. Если предположить, что базовый кегль (>font size
) элемента >body
равен >16
пикселям при >100 %
, мы можем подставить эти значения непосредственно в формулу. В результате получим отношение целевого кегля заголовка >h1
(24 пикселя, >24px
) и кегля его контекста (16 пикселей, >16px
):
>24: 16 = 1,5
Так как 24 пикселя в 1,5 раза больше 16 пикселей, это значит, что кегль равен >1,5 em
.
>h1 {
>font-size: 1.5em; /* 24px / 16px */
>font-style: italic;
>font-weight: normal;
>}
Вуаля! Размер нашего заголовка прекрасно совпадает с размером, указанным в оригинал-макете, но при этом выражен в относительных, масштабируемых единицах (рис. 2.7).
(Обычно я оставляю комментарий с расчетами с правой стороны (>/* 24px / 16px */