Как подчеркнуть текст в HTML
Есть два способа: тег <u> или CSS-свойство text-decoration: underline. Оба рисуют одинаковую линию:
Проблема любого подчеркивания видна в третьей строке: читатели ожидают, что подчеркнутый текст это ссылка, и кликают по нему. Подчеркивайте обычный текст, только когда для этого есть явная причина.
Что означает тег u
<u> это не универсальная кнопка «подчеркнуть». В современном HTML он означает текст с невысказанной пометкой: знак, который говорит «здесь что-то особенное», не объясняя, что именно. Типичные реальные применения:
- отметка орфографической ошибки (как в текстовом редакторе, часто красной волнистой линией),
- отметка имен собственных в китайском тексте, где это типографская традиция.
Для выделения используйте <em> или <strong> (см. жирный текст), а для названий книг <cite>. Если нужен только внешний вид, используйте CSS.
Зачеркнутый текст: s и del
В HTML два тега проводят линию через текст, и значат они разное:
| Тег | Смысл | Типичное применение |
|---|---|---|
<s> | Больше не актуально, сохранено для контекста | Старая цена, распроданный тип билета |
<del> | Удалено из документа | Правки, журналы изменений, выполненные пункты списка дел |
Отметка правок через ins и del
<ins> это пара для <del>: он отмечает добавленный текст. Браузеры по умолчанию его подчеркивают. Оба тега принимают datetime (когда произошло изменение) и cite (URL с объяснением):
Красно-зеленый стиль это привычный вид diff. text-decoration: none у ins убирает подчеркивание по умолчанию, чтобы он не выглядел как ссылка.
Подчеркивание и зачеркивание через CSS
text-decoration отвечает за внешний вид у любого элемента: он принимает цвет и стиль, а text-decoration-thickness задает толщину. Для чисто декоративных линий это правильный инструмент:
Как убрать подчеркивание у ссылок, как задать смещение подчеркивания и остальные детали text-decoration описаны на странице подчеркивание в CSS.
Доступность
Программы чтения с экрана поддерживают <s>, <del> и <ins> непоследовательно: одни объявляют их как удаленный или вставленный текст, многие читают как обычный, поэтому слушатель может услышать «Цена 49 долларов 29 долларов» без намека на то, какая из них актуальна. Когда разница важна, скажите о ней и словами, например текстом, который визуально скрыт, но зачитывается, или просто «Было 49 ».
Частые ошибки
- Подчеркнутый текст, который не является ссылкой. Читатели попытаются по нему кликнуть. Для выделения используйте жирный шрифт, цвет или фон.
<u>для выделения. Используйте<em>или<strong>.<strike>. Он устарел. Используйте<s>,<del>илиtext-decoration: line-through.<s>для удаленного содержимого в истории документа. Для этого есть<del>, который еще и может хранить время изменения.- Смысл передается только линией. Многие программы чтения с экрана ее не объявляют.
Часто задаваемые вопросы
Как подчеркнуть текст в HTML?
Оберните его в <u> или задайте text-decoration: underline в CSS. Используйте <u> только в его особом значении (например, для отметки слова с ошибкой); для чисто визуального подчеркивания задайте CSS <span> или самому элементу.
Как зачеркнуть текст в HTML?
Используйте <s> для текста, который больше не актуален, например старой цены, и <del> для текста, удаленного при правке. Оба тега проводят линию через текст. В CSS то же самое визуально делает text-decoration: line-through.
Тег <u> устарел?
Нет. <u> объявили устаревшим в HTML 4, но в HTML5 он вернулся с новым значением: текст с нетекстовой пометкой, например орфографическая ошибка или имя собственное в китайском тексте. Он корректен, просто редко оказывается правильным выбором.
Что стало с тегом <strike>?
<strike> устарел. Браузеры по-прежнему рисуют его как зачеркивание, но это некорректный HTML. Используйте <s> или <del> в зависимости от смысла, или text-decoration: line-through.
Чем <s> отличается от <del>?
<s> отмечает текст, который больше не актуален или не верен, но сохранен для контекста, например зачеркнутую цену. <del> отмечает текст, удаленный из документа, часто рядом с <ins>, показывающим, что его заменило, и может иметь атрибуты datetime и cite.