DevSkillRoad

Шрифты и текст в CSS

🔤 Как управлять внешним видом текста

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

1. Цвет текста — color

Задаёт цвет текста. Способы задания мы уже изучили в лекции 2.

.purple {
    color: #530899;
}

Фиолетовый текст

2. Шрифт — font-family

Задаёт гарнитуру шрифта. Можно перечислять несколько через запятую — браузер выберет первый доступный. В конце указывают тип шрифта как запасной вариант.

Возможные значения:

.sans {
    font-family: Arial, sans-serif;
}
.serif {
    font-family: 'Times New Roman', serif;
}
.mono {
    font-family: 'Courier New', monospace;
}

Arial, sans-serif

Times New Roman, serif

Courier New, monospace

3. Размер шрифта — font-size

Задаёт размер текста.

Возможные значения:

.small {
    font-size: 0.8rem;
}
.normal {
    font-size: 1rem;
}
.large {
    font-size: 1.5rem;
}

0.8rem (мелкий текст)

1rem (обычный текст)

1.5rem (крупный текст)

4. Жирность — font-weight

Задаёт насыщенность шрифта.

Возможные значения:

.normal {
    font-weight: normal;
}
.bold {
    font-weight: bold;
}
.extra-bold {
    font-weight: 900;
}

normal (400) — обычный текст

bold (700) — жирный текст

900 — очень жирный текст

5. Курсив — font-style

Включает курсивное начертание.

Возможные значения:

.normal {
    font-style: normal;
}
.italic {
    font-style: italic;
}

normal — обычный текст

italic — курсивный текст

6. Межстрочный интервал — line-height

Задаёт расстояние между строками текста. Рекомендуется использовать числа без единиц — они умножаются на размер шрифта.

Возможные значения:

.tight {
    line-height: 1.2;
}
.normal-lh {
    line-height: 1.5;
}
.loose {
    line-height: 2;
}
line-height: 1.2 (плотно)
Вторая строка для наглядности
line-height: 1.5 (обычно)
Вторая строка для наглядности
line-height: 2 (свободно)
Вторая строка для наглядности

7. Выравнивание текста — text-align

Задаёт выравнивание текста внутри блока.

Возможные значения:

.left {
    text-align: left;
}
.center {
    text-align: center;
}
.right {
    text-align: right;
}
.justify {
    text-align: justify;
}

left — по левому краю

center — по центру

right — по правому краю

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

8. Оформление текста — text-decoration

Добавляет линии над, под или через текст.

Возможные значения:

.none {
    text-decoration: none;
}
.underline {
    text-decoration: underline;
}
.line-through {
    text-decoration: line-through;
}
.overline {
    text-decoration: overline;
}

none — без оформления

underline — подчёркнутый текст

line-through — зачёркнутый текст

overline — линия сверху

9. Регистр текста — text-transform

Позволяет менять регистр текста без изменения HTML.

Возможные значения:

.uppercase {
    text-transform: uppercase;
}
.lowercase {
    text-transform: lowercase;
}
.capitalize {
    text-transform: capitalize;
}

uppercase — все буквы ЗАГЛАВНЫЕ

lowercase — все буквы строчные

capitalize — Каждое Слово С Заглавной

10. Расстояние между буквами — letter-spacing

Увеличивает или уменьшает расстояние между символами.

Возможные значения: normal (по умолчанию), пиксели (2px), em, rem.

.tight {
    letter-spacing: -0.5px;
}
.normal-ls {
    letter-spacing: normal;
}
.wide {
    letter-spacing: 3px;
}

letter-spacing: -0.5px (плотно)

letter-spacing: normal (обычно)

letter-spacing: 3px (широко)

11. Отступ первой строки — text-indent

Задаёт отступ первой строки абзаца (как «красная строка»).

Возможные значения: пиксели, em, проценты.

.indent {
    text-indent: 2em;
}

text-indent: 2em — это пример абзаца с отступом первой строки. Такой отступ часто используют в книгах и статьях.

12. Дополнительные свойства для работы с текстом

white-space — управление переносом строк

Возможные значения: normal (по умолчанию), nowrap (без переносов), pre (как в теге <pre>), pre-wrap (с переносами).

.nowrap {
    white-space: nowrap;
}
Этот очень длинный текст не переносится на новую строку, появляется горизонтальная прокрутка.

✅ Текст не переносится, можно прокрутить вправо

text-overflow — многоточие для обрезанного текста

Работает только в паре с overflow: hidden и white-space: nowrap.

Возможные значения: clip (обрезать), ellipsis (многоточие).

.ellipsis {
    width: 200px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
Этот очень длинный текст обрезается и в конце показывает многоточие.

✅ Длинный текст заменяется на многоточие

word-break: break-all — принудительный разрыв

https://verylongwebsiteaddress.com/this/is/a/very/long/url

✅ Ссылка разрывается в любом месте

overflow-wrap: break-word — аккуратный перенос

Это оченьдлинноеслово которое не помещается

✅ Слово переносится целиком, если есть место на новой строке

📌 Совет: Для ссылок и длинных слов используйте overflow-wrap: break-word. white-space: nowrap часто применяется для заголовков и пунктов меню. А text-overflow: ellipsis — для списков новостей и карточек товаров.
📓 Из тетради: «Шрифт — это голос вашего сайта. Главное — текст должен быть читаемым. Размер не меньше 14–16px, строки не слишком плотные, контраст достаточный. Для ссылок подчёркивание обычно убирают, но оставляют его при наведении — это мы разберём в лекции про псевдоклассы».