
CSS предоставляет несколько методов для создания подчеркивания текста, каждый из которых подходит для разных задач. Самый базовый способ – использование свойства text-decoration. Значение underline добавляет классическое подчеркивание, а комбинации с overline или line-through позволяют создавать более сложные визуальные эффекты.
Для более точного контроля используется свойство text-decoration-line, которое разделяет тип линии от её цвета и толщины. Свойство text-decoration-color позволяет задавать цвет подчеркивания, а text-decoration-thickness – регулировать толщину линии, что особенно важно при адаптивном дизайне и поддержке высоких разрешений экранов.
Альтернативный подход – использование псевдоэлементов ::before и ::after с абсолютным позиционированием. Такой метод позволяет создавать динамичные и анимированные подчеркивания, которые реагируют на наведение или другие взаимодействия пользователя. Дополнительно можно применять градиенты через background-image для подчеркиваний с плавным цветовым переходом.
В современных проектах часто используют свойство text-underline-offset, чтобы управлять расстоянием линии от текста. Оно позволяет создавать визуально более аккуратные подчеркивания, особенно при работе с крупными шрифтами и многострочными блоками текста. Комбинация всех этих методов дает полный контроль над стилем подчеркивания и обеспечивает единый визуальный стандарт на сайте.
Использование свойства text-decoration для стандартного подчеркивания

Свойство text-decoration позволяет управлять подчеркиванием текста напрямую, без применения дополнительных элементов или псевдоэлементов. Для стандартного подчеркивания используется значение underline. Например: text-decoration: underline; добавляет линию под всеми символами выбранного элемента.
Можно применять text-decoration к любым блочным и строчным элементам, включая p, span, a. Подчеркивание наследуется, если элемент вложен, но можно отключить его на дочерних элементах с помощью text-decoration: none;.
С CSS3 свойство стало более гибким: допускается использование нескольких значений через пробел, например text-decoration: underline overline;, что одновременно добавляет подчеркивание и надчеркивание.
Для управления стилем линии подчеркивания доступны параметры text-decoration-color, text-decoration-style и text-decoration-thickness. Например, text-decoration: underline solid red 2px; создаст красную линию толщиной 2 пикселя с классическим сплошным стилем.
Рекомендации: используйте text-decoration вместо border-bottom для простого подчеркивания, так как это снижает сложность кода и обеспечивает совместимость с наследованием и доступностью, включая корректное взаимодействие с экранными считывателями.
При применении к ссылкам (a) стандартное подчеркивание улучшает узнаваемость интерактивного элемента. При изменении цвета или стиля линии сохраняйте контрастность с фоном для улучшения читаемости.
Создание разноцветного подчеркивания с text-decoration-color
Свойство text-decoration-color позволяет задавать цвет подчеркивания текста отдельно от цвета самого шрифта. Оно работает совместно с text-decoration-line, text-decoration-style и text-decoration-thickness, обеспечивая точный контроль над визуальным оформлением подчеркивания.
Для базового применения достаточно указать линию и цвет: text-decoration-line: underline; и text-decoration-color: #ff5733;. В этом примере текст будет черным, а подчеркивание – насыщенно-оранжевым.
Можно комбинировать цвета и стили подчеркивания. Например, пунктирное разноцветное подчеркивание создается так: text-decoration-style: dashed; вместе с text-decoration-color: teal;. Толщина линии настраивается через text-decoration-thickness: 2px;, что позволяет подчеркиванию быть более заметным без изменения размера шрифта.
Для мультирегионального текста можно задавать разные цвета через обертки: каждый <span> с text-decoration-color получает индивидуальный оттенок, создавая эффект градиента или чередования цветов, сохраняя стандартное подчеркивание без использования фона.
Важно учитывать наследование: text-decoration-color наследуется автоматически, если не задано локально. Для динамического изменения цвета подчеркивания при наведении используется :hover: span:hover { text-decoration-color: red; }, что улучшает визуальную интерактивность.
Поддержка современных браузеров позволяет применять text-decoration-color без дополнительных хаки-решений. Использование HEX, RGB и CSS-переменных обеспечивает гибкость при интеграции с дизайн-системой и легкую настройку под цветовую палитру проекта.
Настройка толщины и стиля линии через text-decoration-thickness и text-decoration-style
CSS-свойства text-decoration-thickness и text-decoration-style позволяют управлять внешним видом линий подчеркивания, надчеркивания и перечеркивания, обеспечивая точный контроль над толщиной и текстурой линии.
text-decoration-thickness задает толщину линии и принимает следующие значения:
auto– браузер определяет оптимальную толщину;- фиксированные размеры в пикселях или других единицах, например
2px,0.1em; - относительные размеры
from-font– толщина определяется настройками шрифта.
Рекомендации по использованию:
- Для тонких и минималистичных подчеркиваний:
0.05em – 0.1em; - Для выделения ключевых слов или заголовков:
2px – 3px; - Использовать
from-fontпри адаптивном дизайне, чтобы линия автоматически соответствовала размеру текста.
text-decoration-style определяет визуальный стиль линии:
solid– сплошная линия;double– двойная линия с небольшим промежутком;dotted– пунктирная линия;dashed– линия из коротких штрихов;wavy– волнистая линия.
Практические советы:
- Для ссылок на сайте чаще используют
solidс толщиной1px – 2pxдля читаемости. - Для декоративных эффектов в заголовках можно применять
doubleилиwavyс толщиной до3px. - Сочетание
dottedилиdashedс небольшим увеличением толщины (1.5px – 2px) улучшает визуальное восприятие на больших экранах.
Пример CSS для комбинированного управления:
h2 {
text-decoration: underline;
text-decoration-thickness: 2px;
text-decoration-style: wavy;
}
Используя оба свойства совместно, можно создавать уникальные линии подчеркивания, подходящие под дизайн и контекст текста, без необходимости добавлять дополнительные элементы через border или box-shadow.
Добавление подчеркивания через border-bottom на элементах текста

Использование свойства border-bottom позволяет создавать точное подчеркивание, контролируя толщину, стиль и цвет линии, что невозможно при стандартном text-decoration: underline. Такой подход удобен для кастомизации дизайна текста и адаптации под макет.
Синтаксис базовой реализации:
| Свойство | Пример | Описание |
|---|---|---|
| border-bottom-width | 2px | Толщина линии подчеркивания. |
| border-bottom-style | solid | Стиль линии: solid, dashed, dotted, double. |
| border-bottom-color | #ff0000 | Цвет линии, поддерживает HEX, RGB, RGBA, HSL. |
| padding-bottom | 3px | Расстояние текста от линии, регулирует визуальное восприятие. |
Пример использования:
span.custom-underline { border-bottom: 2px solid #1a73e8; padding-bottom: 2px; }
Рекомендации:
- Используйте
padding-bottom, чтобы отделить текст от линии, избегая слияния с символами, особенно с нижними выносными (j, g, y). - Для адаптивного дизайна применяйте относительные единицы, например
em, вместо фиксированныхpx. - При анимации подчеркивания используйте
transitionнаborder-bottom-widthилиborder-colorдля плавного эффекта. - Совмещайте с
display: inline-block, чтобы линия не растягивалась на всю ширину блока.
Этот метод предпочтителен для сложного дизайна ссылок, кнопок и заголовков, где стандартное подчеркивание ограничено по цвету, толщине и стилю.
Использование псевдоэлементов ::after для кастомного подчеркивания

Псевдоэлемент ::after позволяет создавать подчеркивание с полной кастомизацией без вмешательства в HTML-разметку. Для его применения необходимо задать элементу position: relative;, а псевдоэлементу – position: absolute;, чтобы корректно позиционировать линию под текстом.
Пример базовой реализации:
a {
position: relative;
color: #000;
text-decoration: none;
}
a::after {
content: "";
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 2px;
background-color: #f00;
transition: transform 0.3s ease;
transform: scaleX(0);
}
a:hover::after {
transform: scaleX(1);
}
В этом примере линия растет слева направо при наведении. Для изменения положения подчеркивания относительно текста используют bottom или top. Толщину линии задают через height, а цвет через background-color. Анимацию появления обеспечивают свойства transform и transition.
Псевдоэлемент позволяет создавать не только простые линии, но и сложные эффекты: градиенты (background: linear-gradient()), пунктирные линии (border-bottom: 2px dashed #000) или подчеркивания с отступом от текста. Для этого важно учитывать display – чаще всего используют block или inline-block, чтобы ширина соответствовала тексту.
Использование ::after дает полную свободу дизайна без изменения структуры HTML и обеспечивает совместимость с современными браузерами. Рекомендуется проверять видимость линии при масштабировании шрифта и на мобильных устройствах, задавая относительные единицы измерения, например em или rem.
Анимация подчеркивания при наведении с помощью CSS transitions

Для создания анимации подчеркивания при наведении часто используют псевдоэлемент ::after или ::before с абсолютным позиционированием. Основная идея – изначально скрыть линию подчеркивания, а при наведении плавно изменять её ширину с помощью свойства transition.
Пример реализации через ::after:
a {
position: relative;
text-decoration: none;
}
a::after {
content: "";
position: absolute;
left: 0;
bottom: 0;
height: 2px;
width: 0;
background-color: #ff0000;
transition: width 0.3s ease;
}
a:hover::after {
width: 100%;
}
В этом примере линия подчеркивания появляется снизу и растягивается слева направо. transition: width 0.3s ease; определяет скорость и плавность анимации. Для ускорения эффекта можно уменьшить время до 0.2s, а для замедления – увеличить до 0.5s. Значение функции ease можно заменить на linear, ease-in или cubic-bezier() для более сложной кривой движения.
Альтернатива – анимировать transform: scaleX() вместо ширины. Этот метод эффективнее для производительности, так как не вызывает перерасчет макета:
a::after {
content: "";
position: absolute;
left: 0;
bottom: 0;
height: 2px;
width: 100%;
background-color: #ff0000;
transform: scaleX(0);
transform-origin: left;
transition: transform 0.3s ease;
}
a:hover::after {
transform: scaleX(1);
}
Использование transform особенно актуально для анимации на мобильных устройствах и при большом количестве элементов на странице. В комбинации с transition это обеспечивает плавное и отзывчивое подчеркивание без дерганий и задержек.
Вопрос-ответ:
Какие способы добавления подчеркивания текста существуют в CSS?
Наиболее простой и распространенный способ — использовать свойство text-decoration с значением underline. Помимо этого, есть более гибкие варианты: например, через свойство border-bottom, которое позволяет задавать толщину, стиль и цвет линии, или с помощью псевдоэлементов ::before и ::after, создавая линии под текстом, что удобно для анимаций и нестандартного оформления.
В чем отличие между text-decoration: underline и border-bottom для подчеркивания текста?
text-decoration: underline добавляет стандартную линию под текстом, которая следует за буквами и не зависит от блока. Она подходит для ссылок и обычного выделения. border-bottom создаёт границу у контейнера, поэтому её можно настраивать: менять цвет, толщину, стиль линии (сплошная, пунктирная и т.д.), а также применять анимацию, что делает этот способ более гибким для дизайнерских задач.
Можно ли сделать подчеркивание с пробелом между текстом и линией?
Да, для этого чаще всего используют border-bottom и задают отступ с помощью padding-bottom. Например, если добавить padding-bottom: 3px к элементу с border-bottom, линия будет располагаться ниже текста, создавая эффект дополнительного пространства между символами и подчеркиванием.
Как создать анимированное подчеркивание при наведении на ссылку?
Анимацию можно реализовать с помощью псевдоэлементов ::after или ::before. Например, создать пустой блок с абсолютным позиционированием под текстом и изначально шириной 0, а при наведении увеличивать ширину до 100% с плавным переходом через transition. Такой способ позволяет контролировать скорость, цвет и направление появления подчеркивания.
Можно ли сделать подчеркивание только под частью текста в абзаце?
Да, для этого текст можно обернуть в отдельный элемент, например <span>, и к нему применить text-decoration: underline или border-bottom. Такой подход позволяет подчеркнуть отдельные слова или фразы, не затрагивая весь блок текста. Это удобно для выделения ключевых слов, ссылок или цитат.
Какие способы добавления подчеркивания текста существуют в CSS?
В CSS подчеркивание текста можно реализовать несколькими методами. Наиболее простой вариант — использовать свойство text-decoration со значением underline, которое добавляет классическое подчеркивание под текстом. Также можно использовать свойство border-bottom, задавая нижнюю границу текста нужной толщины, цвета и стиля. Этот способ позволяет более гибко управлять внешним видом линии, например, создавать пунктирные или двойные подчеркивания. Еще один метод — применять box-shadow для создания эффекта подчеркивания с цветовым градиентом или смещением. Для интерактивных элементов, таких как ссылки, часто используют text-decoration-skip-ink для корректного отображения подчеркивания с учетом засечек шрифта.
