
В CSS нижнее подчеркивание текста можно реализовать с помощью свойства text-decoration. Например, text-decoration: underline; добавляет стандартную линию под текстом, сохраняя совместимость с большинством браузеров и минимизируя необходимость дополнительных элементов.
Для более точного контроля толщины, цвета и позиции подчеркивания используют text-decoration-thickness и text-underline-offset. Значения можно задавать в пикселях или относительных единицах, например: text-decoration-thickness: 2px; text-underline-offset: 3px;, что позволяет создавать аккуратные и читаемые линии без использования псевдоэлементов.
Псевдоэлементы ::after и ::before дают гибкость при создании кастомных подчеркиваний. С их помощью можно задавать градиенты, анимацию или многослойные линии, используя свойства content, display, width, height, background. Такой подход особенно удобен при адаптивной верстке и интерактивных эффектах.
Для текстов с изменяющейся длиной лучше применять border-bottom на inline или inline-block элементах. Этот метод позволяет точно управлять отступами и толщиной линии, а также легко интегрируется с CSS-переменными для динамического изменения стилей.
Использование свойства text-decoration для подчеркивания текста

Свойство text-decoration управляет визуальными линиями текста, включая подчеркивание, зачеркивание и надчеркивание. Для создания стандартного нижнего подчеркивания используется значение underline, например: text-decoration: underline;. Это автоматически добавляет линию под текстом с учетом высоты шрифта и межстрочного интервала.
Дополнительно CSS позволяет настраивать толщину, стиль и цвет подчеркивания через отдельные свойства: text-decoration-color, text-decoration-style и text-decoration-thickness. Пример:
text-decoration: underline; text-decoration-color: #ff0000; text-decoration-style: wavy; text-decoration-thickness: 2px;. Такой подход заменяет использование устаревших тегов <u> и обеспечивает гибкий контроль внешнего вида.
Для сокращения записи можно использовать комбинацию значений через одно свойство: text-decoration: underline wavy blue 2px;. Эта форма поддерживается современными браузерами и позволяет одновременно определить стиль, цвет и толщину линии.
Важно учитывать наследование: текст внутри элемента с text-decoration может унаследовать подчеркивание, если не указано text-decoration: none;. Это удобно для управления ссылками и списками без изменения отдельных тегов.
Для интерактивных элементов, таких как ссылки, рекомендуется комбинировать text-decoration с :hover и :focus, например: a { text-decoration: none; } a:hover { text-decoration: underline; }, чтобы обеспечить визуальную обратную связь при наведении.
Свойство text-decoration подходит для большинства случаев, где требуется простое или настраиваемое подчеркивание текста, сохраняя семантику HTML и минимизируя использование дополнительных элементов.
Настройка цвета и толщины подчеркивания через text-decoration-color и text-decoration-thickness

Свойство text-decoration-color задаёт точный цвет линии подчеркивания. Оно поддерживает любые CSS-цвета: ключевые слова, HEX, RGB, HSL и функции прозрачности, например rgba(255,0,0,0.6). Для одновременного изменения цвета подчеркивания и текста используют раздельное указание: color: black; text-decoration-color: red;.
text-decoration-thickness контролирует толщину линии. Допустимы значения в пикселях (2px), относительные (0.1em) и ключевые слова auto, from-font. auto применяет толщину по умолчанию браузера, from-font наследует толщину, соответствующую текущему шрифту.
Для стабильного отображения рекомендуется задавать цвет и толщину отдельно, избегая одновременного использования сокращённого свойства text-decoration, если важна точная визуализация. Пример корректной записи: text-decoration-line: underline; text-decoration-color: #1e90ff; text-decoration-thickness: 2px;.
Комбинация text-decoration-color и text-decoration-thickness позволяет создавать тонкие, едва заметные линии или яркие, выразительные акценты под текстом, без применения бордеров или псевдоэлементов.
Для динамического дизайна удобно использовать относительные единицы: text-decoration-thickness: 0.08em; гарантирует, что подчеркивание масштабируется вместе с размером шрифта.
Создание двойного и пунктирного подчеркивания с text-decoration-style

Свойство text-decoration-style позволяет менять стиль подчеркивания текста, расширяя возможности стандартного text-decoration. Для создания двойного подчеркивания используется значение double, а для пунктирного – dashed или dotted. Пример CSS:
text-decoration: underline; text-decoration-style: double;
text-decoration: underline; text-decoration-style: dashed;
Важные нюансы работы:
| Значение | Описание | Рекомендации |
|---|---|---|
| double | Создает две параллельные линии под текстом | Использовать для акцентирования заголовков или ключевых слов; учитывать, что ширина линий ограничена толщиной шрифта |
| dashed | Подчеркивание пунктирной линией | Подходит для выделения ссылок или заметок; длина штрихов зависит от браузера |
| dotted | Подчеркивание точками | Эффективно для минималистичного выделения текста; проверять контраст с фоном |
Для управления толщиной линии используют text-decoration-thickness, а цвет задается через text-decoration-color. Пример комбинации:
text-decoration: underline; text-decoration-style: double; text-decoration-thickness: 2px; text-decoration-color: #2a9d8f;
Браузерная поддержка современных стилей text-decoration-style достаточна для основных версий Chrome, Firefox, Edge и Safari, что делает эти методы надежными для оформления веб-страниц.
Добавление подчеркивания с помощью border-bottom

Свойство border-bottom позволяет создавать подчеркивание у текста или блоков с точной настройкой толщины, цвета и стиля линии. Например, запись border-bottom: 2px solid #ff0000; добавит красное подчеркивание толщиной 2 пикселя.
Для управления отступом между текстом и линией используется padding-bottom. При значении padding-bottom: 4px; линия не сливается с текстом, а находится на оптимальном расстоянии.
Можно комбинировать стиль линии через ключевые значения: solid – сплошная, dashed – пунктирная, dotted – точечная. Например, border-bottom: 1px dashed #333; создаст тонкое пунктирное подчеркивание.
Для изменения длины подчеркивания относительно текста применяют display: inline-block и width. Например, display: inline-block; border-bottom: 2px solid blue; width: 50%; создаст подчеркивание только под половиной текста.
Чтобы сделать подчеркивание адаптивным при наведении, используют псевдоклассы: a:hover { border-bottom: 2px solid green; }. Линия появляется или меняет цвет без изменения разметки.
Свойство border-bottom эффективно для заголовков, ссылок и кнопок, когда важно точное позиционирование линии и контроль над визуальным стилем, без использования text-decoration.
Сдвиг линии подчеркивания через padding и margin

Для точного позиционирования стандартного подчеркивания через text-decoration: underline; можно использовать комбинацию padding и margin на элементе или его контейнере. Например, увеличение padding-bottom на 2–4 пикселя поднимает текст выше линии, создавая визуальный разрыв между текстом и подчеркиванием.
Применение margin-bottom к элементу с подчеркиванием сдвигает всю строку вниз относительно соседних блоков, не изменяя позицию самой линии. Это полезно для регулировки расстояния между абзацами с подчеркиванием.
Если необходимо, чтобы подчеркивание начиналось и заканчивалось с отступами от края текста, можно добавить padding-left и padding-right. Например, padding-left: 3px; сдвигает линию вправо на 3 пикселя, сохраняя подчеркивание на всей длине текста с учетом отступа.
Для тонкой настройки подчеркивания часто комбинируют padding-bottom с line-height. Увеличение line-height на 2–3 пикселя позволяет линии располагаться ниже текста без изменения вертикального размера блока.
Важно учитывать, что прямое управление позицией подчеркивания через padding и margin ограничено стандартным рендерингом браузера. Для более точного сдвига лучше использовать border-bottom вместо text-decoration, но для быстрых корректировок отступов padding и margin остаются самым простым инструментом.
Применение псевдоэлементов ::before и ::after для кастомного подчеркивания
Псевдоэлементы ::before и ::after позволяют создавать декоративные линии под текстом без изменения HTML-разметки. Они применяются с абсолютным позиционированием внутри родительского элемента и могут иметь любую толщину, цвет и стиль.
Пример базовой реализации подчеркивания с ::after:
h3 {
position: relative;
display: inline-block;
}
h3::after {
content: "";
position: absolute;
left: 0;
bottom: -4px;
width: 100%;
height: 2px;
background-color: #ff6600;
}
Рекомендации по использованию:
- Для корректного отображения подчеркивания родительскому элементу нужно задать
position: relative;. - Высоту линии можно регулировать через
heightв пикселях или rem. - Смещение под текст достигается через свойство
bottom, значение подбирается в зависимости от размера шрифта. - Ширина линии может быть фиксированной или занимать всю ширину текста через
width: 100%;. - Цвет линии задается
background-color, что позволяет использовать градиенты черезlinear-gradientдля более сложного дизайна.
Для эффекта «анимированного подчеркивания» можно использовать CSS-переходы:
h3::after {
content: "";
position: absolute;
left: 0;
bottom: -4px;
width: 0;
height: 2px;
background-color: #ff6600;
transition: width 0.3s ease;
}
h3:hover::after {
width: 100%;
}
Псевдоэлементы позволяют создавать сложные варианты:
- Двойное подчеркивание с двумя псевдоэлементами ::before и ::after.
- Ломаные или пунктирные линии с использованием
border-bottomили градиентов. - Подчеркивание с динамическим цветом при наведении, используя
transitionиhover.
Использование ::before и ::after обеспечивает контроль над стилем подчеркивания без изменения структуры текста и позволяет адаптировать дизайн под разные размеры и шрифты.
Анимация нижнего подчеркивания при наведении с CSS transitions
Для создания анимации нижнего подчеркивания используется свойство transition, которое позволяет плавно изменять ширину или прозрачность линии при наведении курсора. Обычно применяется псевдоэлемент ::after с абсолютным позиционированием относительно родителя.
Пример базового кода:
CSS:
a {
position: relative;
color: #000;
text-decoration: none;
}
a::after {
content: «»;
position: absolute;
left: 0;
bottom: 0;
width: 0;
height: 2px;
background-color: #ff0000;
transition: width 0.3s ease;
}
a:hover::after {
width: 100%;
}
В данном примере линия начинается с нулевой ширины и растет до полной длины ссылки при наведении. transition контролирует скорость и плавность изменения. Для более выразительного эффекта можно использовать различные функции временной кривой: ease-in, ease-out, cubic-bezier().
Если нужно анимировать цвет или прозрачность подчеркивания, можно добавить свойства background-color или opacity к transition:
a::after {
transition: width 0.3s ease, background-color 0.3s ease;
}
Для горизонтального смещения линии с обеих сторон одновременно используют transform: scaleX() с transform-origin:
a::after {
content: «»;
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 2px;
background-color: #ff0000;
transform: scaleX(0);
transform-origin: left;
transition: transform 0.3s ease;
}
a:hover::after {
transform: scaleX(1);
}
Эта техника обеспечивает более точный контроль над анимацией и позволяет легко комбинировать масштабирование с изменением цвета или прозрачности для сложных эффектов подчеркивания.
Вопрос-ответ:
Как сделать нижнее подчеркивание текста в CSS без использования тега ``?
В CSS для создания нижнего подчеркивания используют свойство `text-decoration`. Например, `text-decoration: underline;` примененный к элементу `
` или `` создаст линию под текстом. Такой способ удобен, потому что отделяет оформление от структуры HTML и легко изменяется через классы.
Можно ли изменить цвет и толщину подчеркивания в CSS?
Да, современные версии CSS позволяют настраивать подчеркивание с помощью свойств `text-decoration-color` и `text-decoration-thickness`. Например, чтобы сделать красное подчеркивание толщиной 2px, пишут: `text-decoration: underline; text-decoration-color: red; text-decoration-thickness: 2px;`. Это дает больше контроля по сравнению с классическим `text-decoration`, где цвет линии совпадает с цветом текста, а толщина задается автоматически.
Как создать подчеркивание только под определенными словами в строке?
Для этого используют тег `` и применяют к нему CSS-класс с подчеркиванием. Например: `
Это важное слово в предложении.
` и в CSS: `.underline { text-decoration: underline; }`. Такой подход позволяет выделять части текста без подчеркивания всей строки.
Существует ли способ сделать анимированное подчеркивание при наведении мыши?
Да, это делают с помощью CSS-псевдоэлементов и переходов. Например, добавляют `::after` к тексту и задают ему ширину 0 по умолчанию, а при `:hover` увеличивают ширину до 100% с помощью `transition`. Так линия «выезжает» под текстом при наведении, создавая визуальный эффект подчеркивания, который привлекает внимание.
