Содержание статьи

Зачёркивание текста в веб-дизайне не ограничивается стандартным text-decoration: line-through. Современные версии CSS позволяют менять толщину линии с помощью text-decoration-thickness, цвет через text-decoration-color и стиль – сплошная, пунктирная или волнистая линия с text-decoration-style. Это открывает возможности для выделения текста без использования графики.
Для частичного зачёркивания слов или отдельных символов используют обёртки <span> с применением CSS. Такой подход позволяет точно управлять визуальным эффектом и комбинировать его с цветом, фоном или анимацией.
Анимация зачёркивания реализуется через псевдоэлементы ::before и ::after с изменением ширины линии по времени. Такой метод особенно полезен для кнопок и интерактивных списков, где нужно привлечь внимание к изменению статуса элемента.
Дополнительные способы включают использование border-bottom для имитации линии через текст и градиентного зачёркивания с linear-gradient. Эти подходы обеспечивают большую гибкость при создании дизайна и позволяют комбинировать эффекты с другими стилями текста.
Правильное управление положением линии через vertical-align и text-decoration-skip-ink позволяет избежать наложения на символы с нижними выносными элементами и сохраняет читаемость текста при разных размерах шрифта.
Использование свойства text-decoration-line для линии через текст

Свойство text-decoration-line управляет тем, какие линии применяются к тексту. Основное значение для зачёркивания – line-through, но возможны комбинации с underline и overline для создания нескольких линий одновременно.
Рекомендации по использованию:
- Для стандартного зачёркивания текста используйте text-decoration-line: line-through; на выбранном элементе.
- Можно комбинировать с underline и overline, например: text-decoration-line: line-through underline; для одновременного подчёркивания и зачёркивания.
- Применяйте text-decoration-line к тегам <span> или <p>, чтобы выделить отдельные слова или фразы без изменения всего блока текста.
Практические советы для читаемости и совместимости:
- Проверяйте, чтобы линия не пересекала символы с нижними выносными элементами; настройка text-decoration-skip-ink помогает сохранить читаемость.
- Для разных браузеров убедитесь, что text-decoration-line поддерживается текущей версией, особенно в комбинации с text-decoration-style и text-decoration-color.
- Для динамических эффектов можно изменять значение text-decoration-line через JavaScript, создавая интерактивное зачёркивание текста при наведении или клике.
Настройка цвета и стиля зачёркивания через text-decoration-color и text-decoration-style

Свойства text-decoration-color и text-decoration-style позволяют точно управлять визуальным видом линии через текст. text-decoration-color задаёт любой допустимый цвет, включая HEX, RGB и CSS-переменные, а text-decoration-style изменяет форму линии.
Возможные значения text-decoration-style:
- solid – сплошная линия, стандартный вариант.
- dashed – пунктирная линия, хорошо выделяет текст без чрезмерного акцента.
- dotted – точечная линия для аккуратного, лёгкого эффекта.
- wavy – волнистая линия, подходит для выделения интерактивного текста.
Рекомендации по применению:
- Для контраста линии и текста выбирайте цвет, отличающийся минимум на 30% по яркости от цвета текста.
- Комбинируйте text-decoration-style и text-decoration-color для выделения различных типов информации, например, устаревших цен или удалённых ссылок.
- Используйте CSS-переменные для цвета линии, чтобы облегчить массовое изменение дизайна и поддержку темы сайта.
- Для многолинейного текста text-decoration-style: solid сохраняет читаемость, а пунктирная или волнистая линия может использоваться на коротких словах или заголовках.
Применение text-decoration-thickness для управления толщиной линии
Свойство text-decoration-thickness позволяет задавать точную толщину линии зачёркивания. Значение можно указывать в пикселях, em, rem или как процент от размера шрифта. Это удобно для адаптации линии под разные размеры текста и визуальные требования дизайна.
Примеры использования:
| CSS | Описание |
|---|---|
| text-decoration-thickness: 2px; | Фиксированная линия толщиной 2 пикселя, подходит для маленьких шрифтов. |
| text-decoration-thickness: 0.1em; | Относительная толщина, которая масштабируется с размером текста. |
| text-decoration-thickness: from-font; | Использует рекомендуемую толщину линии, заданную шрифтом. |
Рекомендации по применению:
- Для мелких шрифтов выбирайте толщину 1–2 пикселя или 0.05–0.1em, чтобы линия не выглядела слишком массивной.
- Для заголовков и крупных текстов используйте 0.15–0.25em или 3–4 пикселя для визуальной гармонии.
- Сочетайте с text-decoration-style и text-decoration-color для комплексного контроля вида линии.
- Тестируйте отображение на разных браузерах и устройствах, так как относительные единицы могут вести себя по-разному.
Зачёркивание отдельных слов с помощью span и CSS
Для точечного зачёркивания отдельных слов используют тег <span> с применением CSS. Такой подход позволяет не затрагивать весь блок текста и легко комбинировать визуальные эффекты.
Пример базового кода:
<span class=»strike»>слово</span>
CSS:
.strike { text-decoration-line: line-through; }
Рекомендации по применению:
- Для выделения нескольких слов внутри одного блока оборачивайте каждое слово в отдельный <span> с классом зачёркивания.
- Комбинируйте с text-decoration-color и text-decoration-thickness для изменения цвета и толщины линии под дизайн текста.
- Используйте CSS-переменные для класса, чтобы централизованно менять стиль линий на сайте.
- Для динамических эффектов применяйте JavaScript, изменяя класс <span> при взаимодействии пользователя, например, при наведении или клике.
Такой подход повышает контроль над визуальной частью текста и позволяет создавать гибкие интерфейсы, где отдельные слова подчёркиваются или зачёркиваются без изменения остальной части контента.
Создание анимации зачёркивания через псевдоэлементы ::before и ::after
Анимация зачёркивания текста реализуется с помощью псевдоэлементов ::before или ::after, которые создают линию поверх текста и управляются CSS-переходами или анимациями. Такой подход позволяет визуально «проводить» линию через слово или фразу при наведении или загрузке страницы.
Базовая структура:
HTML: <span class=»animated-strike»>текст</span>
CSS:
.animated-strike::after { content: »; position: absolute; height: 2px; background: black; width: 0; transition: width 0.3s; }
.animated-strike:hover::after { width: 100%; }
Рекомендации по применению:
- Используйте position: relative для родительского элемента, чтобы псевдоэлемент правильно располагался над текстом.
- Толщину линии задавайте через height или text-decoration-thickness, чтобы сохранить пропорции текста.
- Для цветовых эффектов применяйте background или linear-gradient внутри псевдоэлемента.
- Контролируйте скорость анимации через transition или @keyframes для плавного появления линии.
- Для сложных интерфейсов можно комбинировать ::before и ::after для создания двух линий, например, волнистой и сплошной.
Использование border-bottom для имитации зачёркивания

Свойство border-bottom позволяет создавать визуально похожий на зачёркивание эффект без применения text-decoration. Это удобно, когда требуется нестандартная позиция линии или дополнительные стили, недоступные через стандартное зачёркивание.
Пример базового применения:
HTML: <span class=»fake-strike»>текст</span>
CSS: .fake-strike { border-bottom: 2px solid black; }
Рекомендации по настройке:
- Используйте display: inline-block для корректного отображения линии под отдельными словами.
- Регулируйте расстояние линии от текста через padding-bottom для точного позиционирования.
- Комбинируйте с border-style и border-color для создания пунктирных, волнистых или цветных линий.
- Для адаптивного дизайна толщину линии указывайте в em или rem, чтобы она масштабировалась вместе с шрифтом.
Сравнение параметров border-bottom для имитации зачёркивания:
| Свойство | Описание |
|---|---|
| border-bottom-width | Толщина линии, обычно 1–3px или 0.1–0.2em для разных размеров шрифта. |
| border-bottom-style | Стиль линии: solid, dashed, dotted, double для визуального разнообразия. |
| border-bottom-color | Цвет линии, можно использовать любые CSS-цвета и градиенты через border-image. |
| padding-bottom | Отступ линии от текста для точного позиционирования и сохранения читаемости. |
Применение linear-gradient для градиентного зачёркивания текста

Градиентное зачёркивание текста создаётся с помощью linear-gradient в сочетании с псевдоэлементами или background-clip: text. Такой метод позволяет задавать плавный переход цвета линии, привлекая внимание к отдельным словам или фразам.
Пример базовой реализации:
HTML: <span class=»gradient-strike»>текст</span>
CSS:
.gradient-strike::after {
content: »;
position: absolute;
height: 2px;
width: 100%;
background: linear-gradient(to right, red, blue);
bottom: 0;
left: 0;
}
Рекомендации по применению:
- Используйте position: relative для родительского элемента, чтобы псевдоэлемент располагался точно под текстом.
- Подбирайте направление градиента через to right, to left или углы для нужного визуального эффекта.
- Толщину линии регулируйте через height, сохраняя пропорции с размером шрифта.
- Для интерактивных эффектов применяйте transition ширины или непрозрачности градиентной линии при наведении.
- Градиенты особенно хорошо работают на коротких словах и заголовках, где линия остаётся заметной и читаемой.
Управление положением линии через vertical-align и text-decoration-skip-ink
Свойство vertical-align позволяет смещать зачёркивающую линию относительно базовой линии текста. Например, значения middle или конкретные пиксели и em помогают подогнать линию под верхние или нижние элементы шрифта, избегая перекрытия с выносными частями букв.
text-decoration-skip-ink контролирует пересечение линии с элементами букв, такими как нижние выносы. Значение auto пропускает линию через эти элементы, none рисует её через все символы, all обеспечивает полное обходное поведение на поддерживаемых браузерах.
Рекомендации:
- Используйте vertical-align для точного позиционирования линии при нестандартных шрифтах или больших размерах текста.
- Включайте text-decoration-skip-ink: auto; для сохранения читаемости длинного текста с выносными элементами.
- Комбинируйте с text-decoration-thickness и text-decoration-color для визуальной гармонии линии с текстом.
- Тестируйте на разных браузерах и устройствах, так как поведение skip-ink может отличаться в мобильных и устаревших версиях.
Вопрос-ответ:
Можно ли использовать разные цвета линии для зачёркивания одного слова?
Да, для этого применяют псевдоэлементы ::before или ::after вместе с linear-gradient или отдельными с разными классами и text-decoration-color. Такой подход позволяет создавать градиентные или комбинированные линии, которые проходят через одно слово, сохраняя точное позиционирование и высоту линии.
Как изменить толщину линии зачёркивания для заголовков?
Толщину линии управляет свойство text-decoration-thickness. Для заголовков с крупным шрифтом рекомендуется использовать относительные единицы, например 0.15–0.25em, чтобы линия масштабировалась вместе с текстом. Можно также применять фиксированные пиксели для точного визуального контроля, сочетая с text-decoration-style для нужного эффекта.
Почему линия иногда перекрывает нижние части букв, и как это исправить?
Если зачёркивающая линия проходит через нижние выносные элементы букв, это связано с тем, что браузер рисует её по базовой линии текста. Свойство text-decoration-skip-ink решает проблему: значение auto позволяет линии обходить выносы, а none оставляет её на том же уровне. Для точной подгонки также можно использовать vertical-align, задавая смещение линии относительно текста.
Можно ли анимировать появление линии зачёркивания?
Да, анимация реализуется с помощью псевдоэлементов ::before или ::after и CSS-свойства transition или @keyframes. Например, при наведении на слово ширина линии плавно увеличивается от 0 до 100%, создавая эффект, что линия «проводится» через текст. Для точной синхронизации с шрифтом используют height и vertical-align.
В чём разница между text-decoration-line и border-bottom для создания линии через текст?
text-decoration-line создаёт настоящую линию зачёркивания, которая корректно реагирует на шрифт и выносы, её легко комбинировать с text-decoration-color и text-decoration-thickness. border-bottom создаёт имитацию линии через текст и позволяет точнее контролировать положение и стиль линии, включая пунктирные или волнистые варианты, но требует настройки padding-bottom для точного совмещения с буквами.
