
CSS предоставляет несколько методов для добавления подчеркивания текста помимо стандартного text-decoration: underline. Свойство text-decoration поддерживает параметры underline, overline, line-through, а также позволяет управлять толщиной, цветом и стилем линии с помощью text-decoration-thickness, text-decoration-color и text-decoration-style.
Для более гибкого управления подчеркиванием используют border-bottom. Этот способ позволяет создавать линии разной толщины, цвета и отступа от текста, используя комбинацию border-bottom-width, border-bottom-color и padding-bottom. Такой подход удобен для создания визуальных акцентов и подчеркиваний с динамическими эффектами при наведении курсора.
С помощью background-image и linear-gradient можно имитировать подчеркивание нестандартной формы или цвета, включая градиенты и пунктирные линии. Этот метод эффективен для текста с переменной длиной, позволяя создавать дизайнерские подчеркивания без использования дополнительных элементов.
Для анимации подчеркивания применяют CSS-псевдоэлементы ::before и ::after с transform или width transitions. Такой подход позволяет создавать эффекты появления линии при наведении, изменения цвета или движения подчеркивания, что улучшает интерактивность интерфейса без использования JavaScript.
Использование свойства text-decoration для обычного подчеркивания

Свойство text-decoration позволяет создавать базовое подчеркивание текста без дополнительных элементов HTML. Для добавления стандартного подчеркивания используется значение underline:
p { text-decoration: underline; }
Можно комбинировать с другими значениями, такими как overline и line-through, используя пробел для перечисления эффектов:
p { text-decoration: underline overline; }
Толщину линии можно задать через text-decoration-thickness. Рекомендуется использовать относительные единицы, например em, чтобы подчеркивание масштабировалось вместе с размером шрифта:
p { text-decoration: underline; text-decoration-thickness: 0.1em; }
Цвет подчеркивания регулируется свойством text-decoration-color. Это позволяет отделить цвет линии от цвета текста:
p { text-decoration: underline; text-decoration-color: #ff0000; }
С помощью text-decoration-style можно изменить стиль линии: solid, dashed, dotted, wavy. Для обычного подчеркивания чаще всего используют solid, но другие стили применимы для акцентов:
p { text-decoration: underline; text-decoration-style: wavy; }
Современные браузеры поддерживают комбинированное управление всеми параметрами через одно свойство text-decoration, что сокращает код и повышает читаемость:
p { text-decoration: underline wavy red 0.1em; }
Создание двойной линии под текстом через text-decoration

Для создания двойной линии под текстом в CSS используется свойство text-decoration с параметром underline в сочетании с text-decoration-style. Основной синтаксис:
text-decoration: underline;text-decoration-style: double;
Пример применения к отдельному элементу:
p.double-underline {
text-decoration: underline;
text-decoration-style: double;
text-decoration-color: #2a9d8f;
}
Свойство text-decoration-color позволяет задать цвет линии, отдельный от цвета текста. Для корректного отображения двойной линии важно выбирать толщину шрифта, при которой линии не сливаются. Обычно достаточно шрифтов от 16px и выше.
Можно управлять положением линий с помощью text-underline-offset. Значение в 2–4px обеспечивает визуально аккуратное отделение двойной линии от текста, предотвращая наложение на буквы с нисходящими элементами, такими как g или y:
p.double-underline {
text-decoration: underline;
text-decoration-style: double;
text-decoration-color: #e76f51;
text-underline-offset: 3px;
}
Для адаптивных интерфейсов рекомендуется использовать относительные единицы em для text-underline-offset, чтобы смещение линии масштабировалось вместе с размером текста:
text-underline-offset: 0.15em;
Поддержка double в text-decoration-style присутствует во всех современных браузерах, включая Chrome, Firefox, Edge и Safari. Для старых версий Internet Explorer можно имитировать двойную линию с помощью border-bottom с двойным стилем, но это требует дополнительной настройки отступов.
Применение пунктирного или волнистого подчеркивания

Для создания пунктирного подчеркивания в CSS используется свойство text-decoration-style с значением dotted. Оно работает вместе с text-decoration-line: underline; и позволяет отделить текст визуально без утяжеления дизайна. Например:
p { text-decoration-line: underline; text-decoration-style: dotted; }
Волнистое подчеркивание задается значением wavy того же свойства. Оно хорошо подходит для выделения ошибок, ссылок или важных элементов текста:
span { text-decoration-line: underline; text-decoration-style: wavy; text-decoration-color: red; }
Цвет подчеркивания можно задавать через text-decoration-color, что позволяет создавать контрастные и аккуратные эффекты. Комбинация цвета, толщины и стиля обеспечивает гибкость без использования дополнительных обводок.
Поддержка в современных браузерах охватывает Chrome, Firefox, Edge и Safari. Для старых версий Internet Explorer рекомендуется использовать border-bottom с dotted или wavy в качестве альтернативы, но следует учитывать разницу в поведении при переносе текста.
Для тонкой настройки толщины подчеркивания применяют text-decoration-thickness, например:
a { text-decoration-line: underline; text-decoration-style: wavy; text-decoration-color: blue; text-decoration-thickness: 2px; }
Использование этих стилей помогает создавать аккуратные визуальные акценты без добавления лишних элементов в HTML-разметку. Пунктирное подчеркивание лучше для легких текстовых акцентов, волнистое – для ошибок или интерактивных элементов.
Настройка цвета и толщины линии подчеркивания

Для управления цветом линии подчеркивания используется свойство text-decoration-color. Оно принимает любые допустимые CSS-значения цвета: hex, rgb, hsl или предопределенные названия. Например, text-decoration-color: #ff5733; задает оранжево-красный оттенок подчеркивания.
Толщину линии подчеркивания регулирует свойство text-decoration-thickness. Можно указать фиксированное значение в пикселях, например text-decoration-thickness: 2px;, или использовать относительные величины, например 0.1em. Значение from-font применяет толщину, рекомендованную шрифтом.
Комбинируя цвет и толщину, можно создать контрастное подчеркивание для выделения ключевых элементов. Например, text-decoration: underline; text-decoration-color: #0066cc; text-decoration-thickness: 0.15em; обеспечивает четкую и заметную линию без перегрузки текста.
Для адаптивного дизайна можно использовать медиазапросы. Например, уменьшать толщину подчеркивания на мобильных устройствах: @media (max-width: 600px) { a { text-decoration-thickness: 1px; } }.
Дополнительно, свойство text-decoration-skip-ink позволяет линии подчеркивания обходить элементы глифов, сохраняя читабельность при увеличенной толщине: text-decoration-skip-ink: auto;.
Использование border-bottom вместо text-decoration
Свойство border-bottom позволяет создавать подчеркивание текста с большей точностью, чем стандартное text-decoration: underline. Оно дает контроль над толщиной, стилем линии и отступом от текста, что особенно полезно для современных интерфейсов и типографики.
Пример базового использования:
span.custom-underline { border-bottom: 2px solid #333; }
В отличие от text-decoration, можно задать разный цвет подчеркивания, не меняя цвет текста, а также использовать dashed, dotted или double для линии.
| Свойство | Описание | Пример значения |
|---|---|---|
| border-bottom-width | Толщина линии подчеркивания | 2px, 0.1em |
| border-bottom-style | Стиль линии | solid, dashed, dotted, double |
| border-bottom-color | Цвет линии | #ff0000, rgba(0,0,0,0.7) |
| padding-bottom | Расстояние между текстом и линией | 2px, 0.2em |
Для динамических эффектов можно комбинировать border-bottom с transition и :hover, например:
a.hover-underline { border-bottom: 2px solid transparent; transition: border-color 0.3s; }
a.hover-underline:hover { border-bottom-color: #007BFF; }
Использование border-bottom также улучшает совместимость с анимациями, так как текст не «скачет» при применении подчеркивания, а линии можно плавно изменять по толщине, цвету или стилю. Это делает метод предпочтительным для дизайнов с индивидуальной типографикой и визуальной иерархией.
Создание анимации подчеркивания при наведении курсора
Для создания анимации подчеркивания используется сочетание псевдоэлементов ::before или ::after с CSS-свойствами transition и transform. Такой подход позволяет реализовать динамическое появление линии под текстом без добавления дополнительных HTML-элементов.
Пример базовой реализации: текст оборачивается в тег <a> или <span>, к которому применяются следующие стили:
position: relative; color: #000; text-decoration: none;
Для псевдоэлемента создаем линию под текстом:
::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 2px; background-color: #ff0000; transform: scaleX(0); transform-origin: right; transition: transform 0.3s ease; }
При наведении курсора активируется анимация:
:hover::after { transform: scaleX(1); transform-origin: left; }
Для плавного эффекта можно изменять transition-timing-function на cubic-bezier(0.25, 0.8, 0.25, 1), что делает движение линии более естественным. Высоту линии (height) подбирают в диапазоне 1–3 пикселей, а цвет подчеркивания лучше выбирать контрастный к тексту.
Если требуется анимация с постепенным появлением градиента или изменением цвета, используют свойства background и linear-gradient совместно с background-size и background-position, меняя их при :hover с плавным переходом через transition.
Для адаптивного текста важно, чтобы псевдоэлемент использовал width: 100%, что позволяет линии корректно масштабироваться при изменении размера шрифта или ширины контейнера.
Использование overflow: hidden на родительском элементе предотвращает выход линии за пределы блока при анимации. Это особенно актуально для длинных текстов или элементов с padding и margin.
Таким образом, комбинация псевдоэлементов, transform и transition позволяет создавать визуально привлекательное подчеркивание при наведении, легко настраиваемое по цвету, толщине и скорости анимации.
Подчеркивание части текста с помощью span и inline-стилей

Для выделения отдельного фрагмента текста внутри абзаца удобно использовать тег <span> с применением inline-стилей CSS. Такой подход позволяет управлять подчеркиванием без создания дополнительных классов или внешних файлов стилей.
Пример базового синтаксиса:
<p>Это пример текста с <span style="text-decoration: underline;">подчеркнутой частью</span> внутри абзаца.</p>
Ключевые моменты при использовании inline-стилей:
text-decoration: underline;– стандартное подчеркивание.- Можно комбинировать с цветом текста:
style="text-decoration: underline; color: #ff0000;". - Для толщины и стиля линии используется
text-decoration-thicknessиtext-decoration-style:
<span style="text-decoration: underline; text-decoration-thickness: 2px; text-decoration-style: wavy;">подчеркнутый текст</span>
Пошаговые рекомендации для точного выделения:
- Выделите только ту часть текста, которая требует акцента, чтобы не перегружать визуально абзац.
- Используйте сочетание
colorиtext-decorationдля улучшения читабельности. - При необходимости подчеркивания нескольких фрагментов внутри одного абзаца применяйте несколько
<span>с разными стилями. - Для тонкой настройки линии используйте CSS-свойства:
text-decoration-color,text-decoration-thickness,text-decoration-style.
Пример комплексного оформления части текста:
<p>Текст с <span style="text-decoration: underline dotted 2px; text-decoration-color: #0077ff;">точечно подчеркнутой фразой</span> для акцента.</p>
Использование <span> с inline-стилями обеспечивает быстрый результат и точное выделение без подключения дополнительных CSS-файлов, сохраняя структуру документа компактной.
Комбинирование подчеркивания с тенью текста и градиентами
Для создания выразительного текста подчеркивание можно сочетать с тенью и градиентной заливкой. В CSS это достигается комбинацией свойств text-decoration, text-shadow и background-clip или -webkit-background-clip.
Пример градиентного текста с подчеркиванием и тенью:
h3 {
font-size: 32px;
font-weight: 700;
background: linear-gradient(90deg, #ff6a00, #ee0979);
-webkit-background-clip: text;
color: transparent;
text-decoration: underline;
text-decoration-color: #ee0979;
text-decoration-thickness: 3px;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}
Рекомендации при комбинировании:
- Толщина подчеркивания: используйте
text-decoration-thicknessдля выделения линии, особенно на градиентном фоне. - Цвет подчеркивания: можно задать отдельным цветом с
text-decoration-color, не обязательно совпадающим с градиентом текста. - Тень текста:
text-shadowпомогает сделать надпись объемной и отделить её от фона, важно подбирать непрозрачность и смещение. - Градиенты: использовать линейные и радиальные градиенты, но текст должен быть прозрачным (
color: transparent) для корректного отображения черезbackground-clip.
Для более сложных эффектов можно создавать многослойные подчеркивания:
h3 {
text-decoration: underline wavy;
text-decoration-thickness: 2px;
text-decoration-color: rgba(255, 255, 255, 0.8);
text-shadow: 1px 1px 2px #000, -1px -1px 2px #ff6a00;
}
Эта комбинация позволяет одновременно подчеркнуть текст, добавить динамику с градиентом и создать объем с помощью тени. Оптимально для заголовков, кнопок и ключевых элементов интерфейса.
Вопрос-ответ:
Какие свойства CSS можно использовать для подчеркивания текста?
Для создания подчеркивания текста в CSS чаще всего используется свойство text-decoration. Оно позволяет задать стиль подчеркивания, цвет и толщину линии. Например, text-decoration: underline; добавляет простую линию под текстом. Также существуют дополнительные свойства, такие как text-underline-offset для регулировки расстояния линии от текста и text-decoration-color для изменения цвета подчеркивания.
Можно ли сделать подчеркивание с помощью рамок и чем это отличается от text-decoration?
Да, текст можно подчеркнуть через свойства рамок, например, с помощью border-bottom. Например, border-bottom: 2px solid red; создаст красную линию под текстом. В отличие от text-decoration, такой способ позволяет контролировать толщину линии, её стиль и отступ относительно текста более гибко, но требует корректного учета высоты строки и вертикального выравнивания.
Как создать пунктирное или волнистое подчеркивание текста?
С помощью CSS можно задавать разные стили линии через text-decoration-style. Доступны варианты: solid (сплошная), dashed (пунктирная), dotted (точечная), wavy (волнистая). Например, text-decoration: underline wavy blue; создаст волнистую синюю линию под текстом, которая визуально отличается от стандартного подчеркивания и может использоваться для акцентов или ссылок.
Можно ли изменить цвет подчеркивания отдельно от цвета текста?
Да, для этого используется свойство text-decoration-color. Оно позволяет задать любой цвет линии под текстом, не меняя цвет самого текста. Например, color: black; text-decoration: underline; text-decoration-color: red; создаст черный текст с красным подчеркиванием. Это удобно, если требуется выделить текст с визуально контрастной линией.
Как регулировать расстояние линии подчеркивания от текста?
Расстояние линии подчеркивания от текста можно настроить через свойство text-underline-offset. Например, text-underline-offset: 4px; поднимает линию выше, создавая больше пространства между текстом и линией. Значение может быть положительным или отрицательным, что позволяет точно настроить внешний вид подчеркивания в зависимости от шрифта и размера текста.
