Как добавить горизонтальную линию
Поставьте <hr> между двумя блоками содержимого. Закрывающего тега у него нет:
По умолчанию линия занимает всю ширину контейнера, имеет небольшие отступы сверху и снизу и рисуется тонкой серой рамкой в стиле inset (светлый и темный край).
<hr> означает horizontal rule, «горизонтальная черта». В HTML это тематический разрыв: смена темы или сцены внутри раздела. Программы чтения с экрана объявляют его как разделитель. Если нужна только декоративная линия (под заголовком, вокруг карточки), нарисуйте ее CSS-рамкой у самого элемента.
Стили hr через CSS
Вид по умолчанию задают рамки, поэтому надежный способ оформить <hr> это убрать их и нарисовать одну рамку самому:
| Что изменить | Что использовать |
|---|---|
| Цвет | border-top: 2px solid #2563eb (после border: none) |
| Толщину | Ширину в этой рамке, например 6px |
| Стиль | solid, dashed, dotted, double |
| Длину | width: 40% плюс margin-inline: auto для центрирования |
| Скругленные концы | height + background + border-radius вместо рамки |
| Отступы вокруг | margin |
Если задать hr только color: blue, в современных браузерах линия изменится, но стиль inset по умолчанию ее затеняет, и она сохраняет высоту 2px. Сброс рамки дает ровно то, что вы задали.
Старые атрибуты hr
В старом коде атрибуты пишут у самого тега:
<hr size="4" width="50%" color="red" noshade align="left">
size, width, color, noshade и align устарели. Браузеры все еще их применяют, чтобы старые страницы выглядели правильно, но это некорректный HTML, который потом сложнее менять. Замените их на CSS выше.
Разделитель с текстом посередине
Линия «или» между двумя кнопками входа это не <hr> (hr не может содержать текст). Это flex-строка, в которой по обе стороны слова нарисовано по линии:
Части ::before и ::after через flex: 1 занимают по половине свободного места и рисуют верхнюю рамку. Замените or на слово подлиннее, и линии сократятся.
Вертикальные линии
Вертикального варианта <hr> нет. Нарисуйте вертикальную линию рамкой с одной стороны элемента или тонким элементом внутри flex-строки:
border-inline-start ставит линию в начале текста, то есть слева в русском и английском и справа в арабском или иврите, поэтому раскладка работает в обоих направлениях.
Частые ошибки
</hr>.<hr>это пустой элемент. Достаточно<hr>или<hr />.<hr>для украшения. Программы чтения с экрана объявляют каждый. Линия, которая нужна только для вида, относится к CSS.- Стили только через
color. Сбросьте рамку черезborder: noneи задайтеborder-top. - Линии из
<br>или подчеркиваний. Используйте<hr>или рамку. Для чего нужен<br>, читайте на странице перенос строки. - Устаревшие атрибуты. Перенесите
size,width,colorиnoshadeв CSS.
Часто задаваемые вопросы
Как добавить горизонтальную линию в HTML?
Используйте тег <hr> на отдельной строке. Это пустой элемент без закрывающего тега, и он рисует линию на всю ширину своего контейнера.
Как изменить цвет hr?
Уберите рамку по умолчанию и нарисуйте свою: hr { border: none; border-top: 2px solid #2563eb; }. Одно лишь color тоже меняет цвет, но стиль inset по умолчанию оставляет линию затененной и двухцветной.
Как сделать hr толще?
Задайте толщину рамки: hr { border: none; border-top: 4px solid #111827; }. Атрибут size из старых учебников в браузерах все еще работает, но он устарел, поэтому используйте CSS.
Как расшифровывается hr?
Horizontal rule, «горизонтальная черта». В современном HTML он означает тематический разрыв: смену темы или сцены между абзацами. Программы чтения с экрана объявляют его как разделитель.
Как сделать вертикальную линию в HTML?
Тега для вертикальной линии в HTML нет. Добавьте рамку с одной стороны элемента, например border-inline-start: 2px solid #e5e7eb, или используйте узкий элемент с цветом фона внутри flex-строки.