edubun
Русский

Типографика

WCAG предлагает строки не длиннее 80 символов и межстрочный интервал не меньше 1.5 внутри абзацев. Два свойства CSS решают обе задачи.

Выбираем шрифты

font-family принимает список шрифтов через запятую. Браузер использует первый, который есть на устройстве читателя, а если его нет, переходит дальше по списку. Всегда заканчивай список общим семейством, serif, sans-serif, monospace или system-ui, чтобы появилось что-то разумное, что бы ни было установлено. Названия шрифтов с пробелами пишут в кавычках, как "Noto Sans KR". system-ui использует шрифт интерфейса операционной системы: он хорошо сделан, уже есть на устройстве и поддерживает много систем письма.

body {
  font-family: system-ui, sans-serif;
  font-size: 1rem;          /* 16px unless the reader changed it */
  line-height: 1.6;         /* unitless: 1.6 times the font size */
  color: #222;
}
h1 { font-size: 2rem; font-weight: 700; line-height: 1.2; }
p  { max-width: 65ch; }     /* keeps lines a readable length */
.label { text-transform: uppercase; letter-spacing: 0.08em; }
Небольшой, но полный набор стилей текста.

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

Размер, насыщенность и высота строки

font-size задаёт размер; как объяснено в уроке о цвете и единицах, rem держит текст в согласии с настройками читателя. font-weight идёт от 100 (тонкий) до 900 (сверхжирный), где 400 обычный, а 700 жирный; ключевые слова normal и bold означают 400 и 700. У шрифта есть только те начертания, которые сделал его дизайнер, поэтому если попросить 300 у шрифта, где есть только 400 и 700, получишь ближайшее.

line-height задаёт расстояние между строками. Укажи простое число без единицы, например 1.6: тогда оно означает 1.6 размера шрифта каждого элемента, и у заголовков и у мелкого текста будет подходящий им интервал. Значение с единицей, например 24px, вычисляется один раз и наследуется как фиксированная длина, а для крупных заголовков это слишком тесно. Основной текст обычно хорошо читается при значениях от 1.4 до 1.7; критерий успеха WCAG 1.4.8 предлагает не меньше 1.5 внутри абзацев. Крупные заголовки выглядят лучше плотнее, примерно от 1.1 до 1.3.

Длина строки и выравнивание

Очень длинные строки утомляют: глаз теряет место, когда перескакивает к началу следующей строки. WCAG 1.4.8 предлагает не больше 80 символов в строке (40 для китайского, японского и корейского). Проще всего добиться этого, задав абзацам max-width в единицах ch, например max-width: 65ch. text-align задаёт выравнивание: left (или start) легче всего читать в длинном тексте на языках с письмом слева направо, center подходит для коротких заголовков, а justify может создать неровные промежутки между словами.

Последние штрихи

text-transform: uppercase показывает текст заглавными буквами, не меняя HTML, поэтому в исходном коде сохраняется обычное написание, а стиль потом можно поменять в одном месте. MDN отмечает, что длинные куски заглавными некоторым людям, в том числе людям с дислексией, читать труднее, поэтому оставь это для коротких меток и добавь немного letter-spacing, например 0.08em. text-decoration рисует линии: underline, line-through или none, чтобы убрать подчёркивание ссылки (оставь другой признак того, что это ссылка). Читатели, которым нужно больше места, могут переопределить твои интервалы; WCAG 1.4.12 требует, чтобы страницы работали и при высоте строки 1.5, межбуквенном интервале 0.12em, интервале между словами 0.16em и интервале между абзацами 2em, поэтому избегай блоков с фиксированной высотой, которые обрезали бы текст.

список шрифтовШрифты пробуются по порядку; в конце общее семейство
общее семействоserif, sans-serif, monospace или system-ui
font-weightОт 100 до 900; 400 обычный, 700 жирный
line-height без единицыМножитель размера шрифта каждого элемента
chШирина цифры 0; удобно для длины строки
@font-faceЗагружает файл шрифта
letter-spacingИнтервал между буквами; помогает тексту заглавными
  1. Зачем заканчивать список font-family общим семейством?
    • Чтобы подходящий шрифт появился, даже если ни один из названных не установлен
    • Так страница загружается быстрее
    • Этого требует синтаксис
  2. Чему равно font-weight: bold?
  3. font-size равен 20px, а line-height равна 1.5. Какова высота каждой строки?
  4. Почему line-height задают без единицы?
    • Каждый элемент умножает её на свой размер шрифта
    • Единицы запрещены
    • Так текст становится жирным
  5. Какую наибольшую длину строки WCAG 1.4.8 предлагает для английского текста?
  6. Какая единица удобна, чтобы ограничить длину строки?
    • ch
    • vh
    • deg
  7. Что меняет text-transform: uppercase?
    • Только то, как текст показывается
    • Текст в HTML-файле
    • Семейство шрифтов
  8. font-size равен 16px. Сколько составляет letter-spacing: 0.1em?
  9. Какое выравнивание легче всего читать в длинных абзацах на английском?
    • left
    • center
    • justify
  10. Почему не стоит задавать текстовым блокам фиксированную высоту?
    • Текст обрезается, когда читатель увеличивает интервалы или размер
    • В CSS высоту задавать нельзя
    • Это замедляет прокрутку
Главное
  • font-family является списком запасных шрифтов, который заканчивается общим семейством.
  • line-height без единицы около 1.5 для основного текста; плотнее для крупных заголовков.
  • Ограничивай длину строки через max-width в ch; заглавным буквам нужен небольшой letter-spacing.
Источники курса (6)
  • W3C CSS Working Group specifications: CSS Snapshot 2025, Selectors Level 4, CSS Cascading and Inheritance Level 5, CSS Color Level 4, CSS Values and Units Level 4, CSS Box Model Level 3, CSS Box Sizing Level 3, CSS Fonts Level 4, CSS Flexible Box Layout Level 1, CSS Grid Layout Level 2, Media Queries Level 4 and Level 5 (w3.org/TR/, checked 2026-10-17)
  • MDN Web Docs, Learn web development: CSS styling basics and CSS layout, and the CSS reference (developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics, .../Core/CSS_layout, developer.mozilla.org/en-US/docs/Web/CSS, checked 2026-10-17)
  • W3C, CSS history and CSS1 Recommendation of 17 December 1996 (w3.org/Style/CSS20/history.html, w3.org/press-releases/1996/css1-rec, checked 2026-10-17)
  • W3C WCAG 2.2, success criteria 1.4.3 Contrast (Minimum)
  • 1.4.8 Visual Presentation, 1.4.10 Reflow, 1.4.12 Text Spacing (w3.org/TR/WCAG22/, checked 2026-10-17)
  • every code exercise checked with a Playwright probe against a reference solution.

Проверено: 2026-10-17