
По умолчанию браузеры рисуют подчеркивание ссылки тем же цветом, что и текст, но это поведение легко переопределяется. Для этого используется CSS-свойство text-decoration-color, которое позволяет задать отдельный цвет линии, не затрагивая сам текст. Такой подход поддерживается всеми актуальными версиями Chrome, Firefox, Safari и Edge, начиная с движков, реализующих спецификацию CSS Text Decoration Level 3.
Если требуется совместимость со старыми браузерами или полный контроль над внешним видом линии, применяется имитация подчеркивания через border-bottom. В этом случае цвет, толщина и стиль линии задаются явно, а стандартное подчеркивание отключается через text-decoration: none. Метод удобен для нестандартных дизайнов, но требует ручной настройки отступов, чтобы линия не «прилипала» к символам.
Дополнительную точность дает связка text-decoration-line, text-decoration-color и text-decoration-thickness. Она позволяет управлять цветом, толщиной и типом линии без костылей и лишних элементов. Для визуального баланса часто используют text-underline-offset, который сдвигает подчеркивание вниз и повышает читаемость на мелких кеглях.
При работе с интерактивными состояниями ссылки (hover, focus, visited) цвет подчеркивания следует задавать отдельно для каждого состояния. Это исключает путаницу между цветом текста и линии и делает поведение ссылки предсказуемым. Практика показывает, что разный цвет подчеркивания и текста упрощает восприятие кликабельных элементов в плотных текстовых блоках.
Изменение цвета подчеркивания через text-decoration-color

Свойство text-decoration-color задает цвет линии подчеркивания независимо от цвета текста ссылки. Оно применяется к элементам с активным подчеркиванием и работает только при наличии значения underline у text-decoration-line или сокращенной записи text-decoration.
Минимальная рабочая конфигурация выглядит так: у ссылки задается text-decoration-line: underline, после чего указывается нужный цвет линии через text-decoration-color. Если используется сокращение, допустима запись text-decoration: underline red, однако раздельные свойства читаются проще и уменьшают риск конфликтов в каскаде.
Для интерактивных состояний цвет подчеркивания рекомендуется задавать отдельно. Например, при наведении можно изменить только text-decoration-color, оставив цвет текста без изменений. Это снижает визуальный шум и позволяет показать активное состояние без резкого контраста.
Свойство корректно поддерживается современными браузерами на всех платформах, включая мобильные. При этом наследование цвета подчеркивания не происходит автоматически: если цвет не указан явно, линия примет текущий цвет текста. Поэтому при использовании переменных или темных режимов цвет подчеркивания лучше задавать осознанно, а не полагаться на значение currentColor.
В сочетании с text-decoration-thickness и text-underline-offset можно добиться стабильного внешнего вида подчеркивания при любом размере шрифта. Это особенно полезно для ссылок внутри абзацев, где стандартное подчеркивание часто выглядит слишком тонким или слишком близким к символам.
Настройка подчеркивания ссылки с помощью text-decoration и text-underline-offset

Свойство text-decoration задает базовые параметры подчеркивания ссылки одной строкой или через набор отдельных значений. Оно определяет наличие линии, ее тип и цвет, что удобно для быстрой настройки без вспомогательных элементов.
На практике чаще используется развернутый подход, так как он дает больше контроля и лучше читается в коде. Для подчеркивания ссылки применяются следующие компоненты:
- text-decoration-line – включает подчеркивание (underline);
- text-decoration-style – задает тип линии (solid, dashed, dotted);
- text-decoration-color – управляет цветом линии независимо от текста.
Отступ подчеркивания от текста регулируется через text-underline-offset. Это свойство сдвигает линию вниз или вверх относительно базовой позиции шрифта и напрямую влияет на читаемость, особенно при мелком размере текста или нестандартных гарнитурах.
Рекомендуемые значения зависят от размера шрифта:
- Для текста 14–16px – offset в диапазоне 2–3px;
- Для текста 18–20px – 3–4px;
- Для крупного текста – подбор вручную с учетом толщины линии.
Сочетание text-decoration и text-underline-offset позволяет отказаться от имитации подчеркивания через рамки. Линия корректно масштабируется, не ломается при переносах строк и сохраняет единое поведение во всех интерактивных состояниях ссылки.
При работе с hover и focus рекомендуется изменять только параметры подчеркивания, не затрагивая положение текста. Такой прием делает изменение состояния заметным без скачков верстки и нарушения межстрочного интервала.
Использование border-bottom вместо стандартного подчеркивания

Подчеркивание через border-bottom применяется, когда стандартное underline не дает нужного контроля над цветом, толщиной или положением линии. В этом случае встроенное подчеркивание отключается через text-decoration: none, а линия рисуется как нижняя граница элемента.

Для изменения цвета подчеркивания при наведении используется псевдокласс :hover в сочетании с text-decoration-color или border-bottom-color, в зависимости от способа подчеркивания.
Если применяется стандартное подчеркивание через text-decoration, достаточно задать новый цвет линии в селекторе ссылки с :hover. Это позволяет изменить только цвет подчеркивания, не влияя на цвет текста, если он остается неизменным.
При использовании border-bottom в качестве подчеркивания цвет линии меняется через свойство border-bottom-color в селекторе с :hover. Такой подход обеспечивает четкий визуальный отклик без сдвигов и изменения межстрочного интервала.
Рекомендуется использовать плавные переходы через CSS-свойство transition для цвета подчеркивания, чтобы избежать резких изменений при наведении. Значения типа transition: text-decoration-color 0.3s ease; или transition: border-bottom-color 0.3s ease; создают более приятный визуальный эффект.
Отдельное внимание стоит уделить согласованности цветов текста и подчеркивания в различных состояниях. Если цвет текста меняется при наведении, подчеркивание должно гармонировать с этим изменением, иначе интерфейс становится менее понятным и может сбивать пользователя.
Раздельная настройка цвета текста и подчеркивания ссылки

В HTML цвет текста и подчеркивания ссылки обычно совпадают, так как по умолчанию подчеркивание наследует цвет текста. Для раздельного управления используется свойство text-decoration-color, позволяющее задать цвет линии независимо от цвета символов.
Для изменения только цвета текста применяется стандартное color, а для линии – text-decoration-color. Это позволяет создавать визуальные акценты и улучшать читаемость ссылок, особенно на насыщенных фонах или в многоцветных интерфейсах.
При использовании border-bottom подчеркивание рисуется отдельным слоем, и цвет линии контролируется через border-bottom-color. В этом случае цвет текста и линии полностью отделены друг от друга, что расширяет возможности стилизации.
Раздельная настройка позволяет:
- Выделять ссылки с контрастной линией без изменения цвета текста;
- Поддерживать фирменные цвета текста и подчеркивания одновременно;
- Обеспечивать разный цвет для текста и линии при наведении, фокусе и других состояниях.
Рекомендуется использовать отдельные свойства для повышения гибкости и избегать ситуаций, когда подчеркивание сливается с текстом, снижая заметность ссылок и ухудшая UX.
Вопрос-ответ:
Как с помощью CSS изменить цвет подчеркивания ссылки, не меняя цвет текста?
Для этого используется свойство text-decoration-color. Оно задает цвет линии подчеркивания отдельно от цвета текста, который управляется через color. Например, если у ссылки color: black;, а text-decoration-color: red;, то текст будет черным, а линия — красной.
Почему подчеркивание через border-bottom иногда лучше стандартного underline?
Использование border-bottom дает больше контроля над стилем подчеркивания: можно точно задать цвет, толщину, отступ и тип линии. Кроме того, border-bottom не зависит от цвета текста и позволяет создать уникальный дизайн. Однако при переносе строки такая линия не разбивается, в отличие от стандартного underline, который автоматически переносится.
Как обеспечить корректное отображение цвета подчеркивания при наведении курсора?
Для изменения цвета линии подчеркивания при наведении используется селектор :hover с заданием нового цвета через text-decoration-color или border-bottom-color в зависимости от выбранного способа подчеркивания. Желательно добавить CSS-переходы (transition) для плавной смены цвета, что улучшит восприятие.
Какие ограничения есть у свойства text-decoration-color?
Свойство text-decoration-color работает только если у элемента есть активное подчеркивание (text-decoration-line: underline;). Оно не влияет на цвет других видов декораций, например, через border. В старых браузерах поддержка может быть ограничена, поэтому для максимальной совместимости иногда используют альтернативные методы, такие как border-bottom.
Как избежать наложения линии подчеркивания на нижние части букв при использовании border-bottom?
При применении border-bottom подчеркивание располагается ближе к тексту, поэтому важно увеличить отступ снизу с помощью свойства padding-bottom. Значение отступа подбирается индивидуально в зависимости от шрифта и размера, чтобы линия не пересекалась с элементами букв, такими как хвостики или спуски.
Как правильно изменить цвет подчеркивания ссылки, чтобы он не совпадал с цветом текста и сохранял читаемость?
Чтобы отделить цвет подчеркивания от цвета текста, применяется свойство text-decoration-color. Оно задает цвет линии отдельно, при этом цвет текста контролируется через color. Такой подход сохраняет читаемость и позволяет выделить подчеркивание на фоне текста. Важно убедиться, что у ссылки включено подчеркивание через text-decoration-line: underline;, иначе text-decoration-color не сработает. Для большей точности можно использовать свойства text-underline-offset и text-decoration-thickness, чтобы отрегулировать расстояние и толщину линии, улучшая визуальное восприятие. При старых браузерах или если нужна нестандартная стилизация, применяется border-bottom с самостоятельным управлением цветом, толщиной и отступами. В интерактивных состояниях рекомендуется задавать цвет подчеркивания отдельно через псевдоклассы, чтобы сохранить предсказуемое поведение ссылок.
