8. Шрифты

На этой странице:

Вверх Семейства шрифтов

Свойство font-family позволяет назначать элементу конкретный шрифт, перечислять набор шрифтов в порядке предпочтения, указывать семейство при помощи ключевого слова.

В качестве названия семейства можно использовать не только конкретное имя шрифта (такое как Georgia), но и пять ключевых слов, задающих пять базовых семейств:

  • serif (шрифты с засечками, или антиква);
  • sans-serif (рубленые шрифты, или гротески);
  • monospace (моноширинные шрифты);
  • cursive (рукописные шрифты);
  • fantasy (декоративные шрифты).
font-family
Значения: <список семейств> | inherit
По умолчанию: зависит от браузера
Область применения: все элементы
Наследование: да
Примечание: названия семейств перечисляются через запятые в порядке предпочтения; если название содержит пробелы и (или) спецсимволы, или совпадает с ключевым словом CSS, оно заключается в кавычки
Файл style.css
  
BODY    
{ 
  color:black;
  background:white; 
  font-family:Georgia,sans-serif;
}
H1,H2,H3,H4,H5,H6 
{
  font-family:Verdana,Geneva,sans-serif;
}
.mono 
{
  font-family:"Courier New",monospace;
}
      
Посмотреть
Файл index.htm
  

      

Серифные и рубленые

Шрифты бывают с засечками (завитушками на кончиках букв) и без засечек. Первые шрифты называют серифными, вторые — рублеными.

Пример серифного шрифта

Серифная буква

Серифные шрифты посредством засечек (серифов) связывают слово в одно целое и, тем самым, помогают читать текст.

Пример рубленого шрифта

Рубленая буква

Рубленые шрифты, в отличие от серифных, имеют ровные края букв и не имеют завитков.

Рубленые шрифты обычно используют в заголовках, подписях под рисунками, а серифные — для написания основного текста.

Информационные сайты стараются разместить на одной странице как можно больше сообщений и делают это за счёт уменьшения размера шрифта. При этом они вынужденно используют рубленый шрифт для основного текста.

Дело вот в чём. При нормальном размере (в 10 или 12 пунктов) серифный шрифт читать гораздо комфортнее, чем рубленый, но при мелких размерах серифы вносят неразборчивость, и рубленые шрифты выигрывают.

Ниже приводится два варианта одного и того же текста. Слева — серифный, справа — рубленый. В обоих вариантах размер шрифта — 6 пунктов.

Серифный Рубленый

Принцип выравнивания гласит: никакой элемент страницы не должен располагаться случайным образом. Каждый из них необходимо визуально связывать с каким-то другим. Данный принцип принуждает дизайнера действовать осознанно — нельзя расположить элемент где-либо только потому, что там нашлось свободное место.

Робин Вильямс «Дизайн для недизайнеров»

Принцип выравнивания гласит: никакой элемент страницы не должен располагаться случайным образом. Каждый из них необходимо визуально связывать с каким-то другим. Данный принцип принуждает дизайнера действовать осознанно — нельзя расположить элемент где-либо только потому, что там нашлось свободное место.

Робин Вильямс «Дизайн для недизайнеров»

Пропорциональные и моноширинные

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

Пример пропорционального шрифта

Пропорциональный шрифт

Прорциональный текст читать комфортнее моноширинного. Вот почему в книгах, журналах, газетах и на Web-страницах для основного текста используют пропорциональные шрифты.

Пример моноширинного шрифта

Моноширинный шрифт

Программисты, в том числе и Web-разработчики, пишут свои коды в редакторах при помощи моноширинных шрифтов. Одинаковая ширина знакомест позволяет выравнивать коды, образуя структурную лесенку. Вот почему на Web-страницах фрагменты кода обычно показывают также моноширинным шрифтом.

Рукописные и декоративные

Рукописные шрифты имитируют человеческий подчерк. Они состоят преимущественно из кривых, украшены завитками и имеют выраженный наклон.

Пример рукописного шрифта

Декоративные шрифты — это шрифты, предназначенные, как следует из их названия, для разного рода украшательств, создания необычных заголовков. Формальному определению (по типу начертания букв) они не поддаются, можно лишь отметить невозможность отнести их к другому семейству шрифтов.

Пример декоративного шрифта

Пример декоративного шрифта

Несколько примеров декоративных шрифтов без русских букв (шрифты представлены названиями):

Примеры декоративных шрифтов

Неалфавитные

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

Примеры символов из шрифта Wingdings:

Примеры символов из шрифта Wingdings

Примеры символов из шрифта Webdings:

Примеры символов из шрифта Webdings

Рекомендации Web-разработчику

Шрифтов очень много, но, к сожалению, Web-разработчик вынужден применять их большей частью “замурованными” в графику: на рисованных заголовках и страничных иллюстрациях.

Конечно, для любого текста на странице можно написать, например, указание font-family:Pirate. Однако шансы, что у пользователя будет на компьютере установлен этот шрифт, не велики, кроме того, в наборе символов шрифта может не оказаться русских букв (в этом шрифте их точно нет).

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

Любая графическая операционная система имеет три набора стандартных гарнитур, для Windows это:

Если появляется (понятное) желание отойти от стандартных (поднадоевших) представлений, не забывайте заканчивать список шрифтов “семейным” ключевым словом — оно будет гарантировать читаемость текста при отсутствии указанных перед ним конкретных шрифтов.

Ваше указание может, например, иметь вид:

font-family:Academy,"School Book",Journal,serif;  
    

Текст будет выводиться шрифтом Academy, если он есть на компьютере пользователя. Иначе браузер будет последовательно искать шрифты School Book, Journal. В случае полной неудачи, текст согласно указанию serif, будет показан “каким-нибудь” серифным шрифтом. В Windows этим шрифтом с большой вероятностью окажется Times New Roman.

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

Шрифт Семейство Образец текста
Arial sans-serif Образец текста
Arial Black sans-serif Образец текста
Franklin Gothic Medium sans-serif Образец текста
Impact sans-serif Образец текста
Lucida Sans Unicode sans-serif Образец текста
Microsoft Sans Serif sans-serif Образец текста
Tahoma sans-serif Образец текста
Trebuchet MS sans-serif Образец текста
Verdana sans-serif Образец текста
Georgia serif Образец текста
Palatino Linotype serif Образец текста
Sylfaen serif Образец текста
Times New Roman serif Образец текста
Courier New monospace Образец текста
Lucida Console monospace Образец текста
Comic Sans MS cursive Образец текста

Вверх Насыщенность шрифта

Свойство font-weight позволяет задать насыщенность шрифта. Чем выше насыщенность, тем шрифт темнее и выглядит более “жирным”.

Шкала от 100 до 900 определяет девять уровней насыщенности, но эти числа (как и другие ключевые слова) не определяют конкретной плотности. CSS говорит только, что каждое число соответствует плотности, по крайней мере, не меньшей, чем плотность предшествующего числа.

Реальная плотность определяется плотностью соответствующего варианта шрифта (входящего в набор семейства или автоматически генерируемым браузером).

font-weight
Значения: normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit
По умолчанию: normal
Область применения: все элементы
Наследование: да
Примечание: значение 400 эквивалентно normal, значение 700 эквивалентно bold; bolder и lighter изменяют насыщенность по отношению к родителю

Файл index.htm

  

      

Посмотреть

CSS не гарантирует, что поддерживаются все 9 уровней плотности  — реально шрифты поддерживают только два уровня:

Рассмотрим работу значений bolder и lighter.

  
P {font-weight:normal;}
P EM {font-weight:bolder;}
      

Получаем жирный текст для элементов EM, которые содержатся внутри “нормального” P.

Значение bolder увеличивает насыщенность по отношению к родительскому элементу.

  
P {font-weight:bold;}
P EM {font-weight:lighter;}
      

Получаем нормальный текст для элементов EM, которые содержатся внутри “жирного” P.

Значение lighter уменьшает насыщенность по отношению к родительскому элементу.

Вверх Размер шрифта

Свойство font-size позволяет управлять размером шрифта.

Размеры можно задавать в предопределённых единицах, предусмотренных семью ключевыми словами: xx-small, x-small, small, medium, large, x-large, xx-large.

Кроме того, можно использовать любые единицы длины и проценты.

Можно уменьшать и увеличивать текущий размер шрифта при помощи ключевых слов smaller и larger.

font-size
Значения: xx-small | x-small | small | medium | large | x-large | xx-large | smaller | larger | <размер> | <процент> | inherit
По умолчанию: medium
Область применения: все элементы
Наследование: да
Проценты: вычисляются относительно размера шрифта родительского элемента
Примечание: значения smaller и larger изменяют размер на одну ступень относительно размера шрифта родителя

Предопределённые размеры

CSS определяет семь размерных единиц при помощи ключевых слов: xx-small, x-small, small, medium, large, x-large, xx-large. При этом коэффициент масштабирования (при переходе к соседней единице) и конкретные размеры зависят от операционной системы, браузера и размера шрифта по умолчанию (которым управляет пользователь).

Файл index.htm

  

      

Посмотреть

Ступенчатые переходы

Значения smaller и larger изменяют размер на одну ступень относительно размера шрифта родителя. При этом используется тот же коэффициент масштабирования, что и при построении семи базовых уровня от xx-small до xx-large.

Пусть, например, для конкретного браузера размер medium равняется 16 пикселам, а коэффициент масштабирования — 1,2.

  
P {font-size:medium;}
P EM {font-size:smaller;}
      

Размер шрифта в элементе EM составит 13 пикселов, что в точности соответствует предопределённому размеру small.

  
P {font-size:medium;}
P EM {font-size:larger;}
      

Размер шрифта в элементе EM составит 19 пикселов, что в точности соответствует предопределённому размеру large.

  
P {font-size:100px;}
P EM {font-size:larger;}
      

Размер шрифта в элементе EM составит 120 пикселов (умножение размера шрифта родителя на коэффициент масштабирования 1,2).

Проценты

Проценты вычисляются по отношению к размеру шрифта родителя. Проценты могут накапливаться, что демонстрирует следующий пример.

Файл style.css
  
UL {font-size:200%;}
      
Посмотреть

Размер шрифта внешнего списка увеличен в 2 раза по отношению к BODY. Это же правило работает и для вложенного списка, но увеличение в 2 раза выполняется по отношению к его родителю UL. В итоге шрифт во вложенном UL в 4 раза крупнее шрифта BODY.

Файл index.htm
  

      

Использование единиц измерения длины

Свойство font-size может быть задано в любых единицах длины.

  
P {font-size:72pt;}
P {font-size:6pc;}
P {font-size:1in;}
P {font-size:2.54cm;}
P {font-size:25.4mm;}
      

Абсолютные единицы: пункты, пики, дюймы, сантиметры, миллиметры.

Все пять приведённых определения эквивалентны, но эти единицы в Web практически не используются.

Ш

Эта буква размером в 1 дюйм.

Реально используют две единицы длины: em и пикселы.

Единица измерения em

Значение em работает как проценты, в том смысле, что 1em эквивалентно 100%, то есть равно размеру текущего шрифта.

  
P {font-size:2.5em;}
P {font-size:250%;}
      

Эти определения эквивалентны.

Ш

Для этой буквы задан размер 2.5em.

Размеры, заданные в em, меняются пропорционально при изменении размера шрифта в браузере.

Пикселы

Если размер шрифта задан в пикселах, пользователи IE вплоть до версии IE6 не смогут его увеличить, и это очень плохо с точки зрения добропорядочного интерфейса. В других современных браузерах (IE7 и остальных) такой проблемы нет.

  
P {font-size:100px;}
      

Ш

Для этой буквы задан размер 100px.

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

Вверх Стиль шрифта

При помощи свойства font-style можно назначать курсив.

Свойство font-style применяется для выбора обычного текста (normal), курсива (italic) и наклонного текста oblique.

Обычно курсивные и наклонные шрифты выглядят в браузерах совершенно одинаково.

font-style
Значения: italic | oblique | normal | inherit
По умолчанию: normal
Область применения: все элементы
Наследование: да

Курсивный шрифт задаётся специально нарисованной гарнитурой, входящей в состав семейства. Наклонный шрифт — это версия обычного шрифта, в которой прямые символы наклонены по математическому алгоритму.

Разница между курсивным и наклонным шрифтом хорошо видна на иллюстрации:

Разница между курсивным и наклонным шрифтом

На рисунке представлено семейство Times New Roman. Курсивный вариант — это отдельный шрифт Times New Roman Italic, а наклонный — получен из прямого математическим преобразованием.

Файл style.css
  
BLOCKQUOTE {font-style:italic;}
BLOCKQUOTE EM {font-style:normal;}
      
Посмотреть

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

Файл index.htm
  

      

Вверх Вариант шрифта

К тексту этого абзаца применёно правило font-variant:small-caps. Правило заставляет браузер заменять строчные буквы прописными уменьшенного размера.

Этот вариант (малые прописные) называется в типографском деле капителью.

font-variant
Значения: small-caps | normal | inherit
По умолчанию: normal
Область применения: все элементы
Наследование: да

Нежелательно набирать капителью длинные (больше двух-трёх слов) фразы: читаемость капители заметно хуже читаемости обычного текста.

Капитель часто используется при вёрстке текстов, записанных латинскими буквами — прописные и строчные буквы в латинице сильно отличаются. Капителью могут оформляться заголовки, первые строки разделов, имена, названия, аббревиатуры.

В текстах, записанных кириллицей, капитель применяется редко. Прописные русские буквы практически повторяют строчные (за исключением Аа, Бб, Ее, Ёё, Рр, Уу, Фф).

Ниже приводится ещё один пример капители, отдельно на латинице и отдельно на кириллице.

Small caps are often used for text that is all uppercase; this makes the run of capital letters seem less jarring to the reader.

Small caps are often used for text that is all uppercase; this makes the run of capital letters seem less jarring to the reader.

Маленькие заглавные часто используются в текстах, набранных прописными буквами; это помогает чтению таких текстов.

Маленькие заглавные часто используются в текстах, набранных прописными буквами; это помогает чтению таких текстов.

Вверх Интегрированное свойство font

Значения стиля (font-style), варианта (font-variant), плотности (font-weight) могут идти в любом порядке с пропуском отдельных параметров или вся эта группа может быть опущена.

Может быть опущено и указание высоты строки вместе с предшествующей косой чертой.

Значения размера (font-size) и семейства (font-family) должны обязательно присутствовать (если только не указан системный шрифт или inherit) и идти строго в указанном порядке.

Высота строки (если она присутствует) должна следовать строго за размером (через косую черту).

Всем пропущенным параметрам автоматически присваиваются значения по умолчанию.

font
Значения:

Запись вида
[<x> || <y> || <z>]
означает: все параметры, либо с пропусками отдельных.
Запись вида
[...]?
означает: вся группа может быть опущена

[ [<стиль> || <вариант> || <плотность>]? <размер> [/<высота строки>]? <семейство>] | <системный шрифт> | inherit
По умолчанию: см. отдельные свойства
Область применения: все элементы
Наследование: да
Проценты: вычисляются относительно родителя для размера шрифта и относительно размера шрифта элемента для высоты строки

Таким образом, задать шрифт можно задать тремя способами. Первый вариант:

Формат указания font

Стиль, вариант и плотность могут идти в любом порядке или отсутствовать, как и размер строки (вместе с косой чертой). Размер и семейство должны присутствовать обязательно и идти в указанном порядке. Если опустить все необязательные параметры, получится так:

Формат указания font

Во втором варианте указывается системный шрифт (никакие другие параметры не допускаются):

Формат указания font

В третьем варианте присутствует указание на шрифт родителя (никакие другие параметры не допускаются):

Формат указания font

Пример

Файл style.css

  
BODY    
{ 
  color:black;
  background:white; 
  font:1em Georgia,sans-serif; 
}

H1 
{
  color:#090;
  font:bold small-caps 2em/1.2 Tahoma,Helvetica,sans-serif; 
}
P.footer
{
  color:#666;
  font-size:0.8em; 
  border-top:1px solid gray;
}
      

Файл index.htm

  

      
Посмотреть

Задание высоты строки

Высота строки (необязательный параметр) задаётся как дополнение к значению font-size и отделяется от него косой чертой.

  
H1 
{
  font:bold small-caps 2em/1.2 Tahoma,Helvetica,sans-serif; 
}
      

Высота строки элемента H1 будет установлена в 2.4em.

Значение высоты строки вычисляется умножение размера шрифта элемента на коэффициент, записанный через косую черту.

Высоту строки можно задавать при помощи отдельного свойства line-height о чём будет рассказано в разделе, посвящённом CSS-свойствам текста.

Системные шрифты

Если на гипертекстовой странице желательно смоделировать среду операционной системы (системные кнопки, меню, диалоговые окна и т. п.), то в качестве единственного значения свойства font можно указать одно из следующих ключевых слов:

caption, icon, menu, message-box, small-caption, status-bar.

Ниже описаны значения этих ключевых слов и приводятся примеры.

Это текст на кнопке

font:caption;

Применяется для элементов управления, имеющих надпись (например, надпись на кнопке).

Это подпись под значком на Рабочем столе

font:icon;

Применяется для подписи значков.

Это пункт меню

font:menu;

Используется в системных меню.

Это сообщение выводится в диалоговое окно

font:message-box;

Используется в диалоговых окнах.

Это текст на маленькой кнопке

font:small-caption;

Применяется для небольших элементов управления, имеющих надпись (например, надпись на маленькой кнопке).

Это текст в строке состояния окна

font:status-bar;

Применяется для текста в статусной строке окна.

Системные шрифты можно задавать, как единое целое. Однако, используя отдельные свойства, можно менять системные значения.

Это пункт меню

В IE-6 этот фокус не проходит.

.botton
{
  font:menu;
  font-size:2em; 
}