Menu

Горизонтальная линия в HTML: тег hr и его стили

Горизонтальную линию в HTML рисует тег <hr>. Разберем, что он означает, как изменить его цвет, толщину, ширину и стиль через CSS, как сделать разделитель с текстом посередине и как нарисовать вертикальную линию.

На этой странице есть исполняемые редакторы: меняйте, запускайте и сразу видите результат.

Как добавить горизонтальную линию

Поставьте <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-строки.

Coddy programming languages illustration

Учитесь программировать с Coddy

НАЧАТЬ