
Горизонтальная линия в веб-дизайне выполняет функцию разделителя контента и визуального акцента. В HTML для этого чаще всего используют тег <hr>, но возможности CSS позволяют изменять толщину, цвет, стиль линии и управлять отступами без дополнительных элементов.
Самый простой способ стилизации <hr> – через свойства border и height. Например, можно задать border-top: 2px solid #333; для тонкой темной линии или использовать border: none; height: 4px; background-color: #f00; для цветного блока.
Для создания линий с эффектом градиента используют background-image: linear-gradient(), комбинируя прозрачные и цветные оттенки. Такой подход позволяет добавить плавный переход цвета по всей ширине блока без использования графики.
С помощью pseudo-elements можно добавлять декоративные линии внутри контейнера: ::before или ::after. Этот метод полезен для создания уникальных разделителей с точками, штрихами или нестандартными формами, сохраняя чистую семантику документа.
Добавление горизонтальной линии в CSS: способы и примеры

Горизонтальная линия в CSS может использоваться для разделения контента или выделения блоков информации. Наиболее простой способ – элемент <hr>, к которому применяются стили через CSS.
Пример базовой линии с изменением цвета и толщины:
| HTML | CSS |
|---|---|
<hr class="custom-hr"> |
.custom-hr {
border: none;
height: 2px;
background-color: #333;
}
|
Линию можно сделать пунктирной или штриховой, изменяя свойство border-style:
| HTML | CSS |
|---|---|
<hr class="dashed-hr"> |
.dashed-hr {
border: none;
border-top: 3px dashed #666;
}
|
Градиентная линия добавляется через background и height без использования изображения:
| HTML | CSS |
|---|---|
<hr class="gradient-hr"> |
.gradient-hr {
border: none;
height: 4px;
background: linear-gradient(to right, #f06, #4a90e2);
}
|
Для короткой линии внутри блока можно использовать width и margin для центрирования:
| HTML | CSS |
|---|---|
<hr class="short-hr"> |
.short-hr {
border: none;
height: 2px;
width: 50px;
background-color: #000;
margin: 20px auto;
}
|
Интерактивная линия с эффектом наведения создается через transition:
| HTML | CSS |
|---|---|
<hr class="hover-hr"> |
.hover-hr {
border: none;
height: 2px;
background-color: #888;
transition: background-color 0.3s;
}
.hover-hr:hover {
background-color: #ff0000;
}
|
Каждый способ позволяет контролировать ширину, цвет, стиль линии и анимацию, что делает горизонтальные линии универсальным инструментом для структуры контента.
Использование тега <hr> и базовые стили

Тег <hr> предназначен для вставки горизонтальной линии, разделяющей контент. По умолчанию линия занимает всю ширину контейнера, имеет небольшую толщину и стандартный цвет, задаваемый браузером.
Для изменения внешнего вида используют CSS-свойства. Толщину линии регулирует свойство height, цвет – background-color или border-color, а форму можно задать через border-style. Например, для тонкой серой линии: hr { height: 2px; background-color: #ccc; border: none; }
Ширину линии ограничивают с помощью width, а выравнивание – через margin-left и margin-right. Для центра по горизонтали обычно применяют margin: 0 auto;. Пример: hr { width: 50%; margin: 0 auto; }
Чтобы добавить отступы перед и после линии, используют margin-top и margin-bottom. Практика показывает, что значения 10–20 пикселей подходят для большинства блоков текста.
Для создания визуально необычных линий применяют градиенты с background-image или чередование прозрачных и цветных участков через linear-gradient. Пример: hr { height: 4px; border: none; background-image: linear-gradient(to right, #000, #fff, #000); }
Сочетание базовых свойств позволяет задавать линии разной толщины, цвета, длины и стиля без добавления лишних элементов в HTML.
Настройка толщины и цвета линии через CSS

Для изменения толщины горизонтальной линии используется свойство border-width или height для блока. Например, hr { border: none; height: 3px; } создаёт линию толщиной 3 пикселя.
Цвет линии задаётся через border-color или background-color для блочного элемента. Пример: hr { background-color: #3498db; } задаёт синий оттенок.
Комбинация толщины и цвета через border выглядит так: hr { border: 2px solid #e74c3c; }. Здесь линия будет красной с толщиной 2 пикселя.
Для динамических эффектов можно использовать градиенты: hr { border: none; height: 4px; background: linear-gradient(to right, #ff6b6b, #f8e71c); }, что создаёт плавный переход цветов по всей длине линии.
При адаптивной верстке толщину линии лучше задавать в относительных единицах, например em или rem: hr { height: 0.2rem; background-color: #2ecc71; }, что позволяет линии сохранять пропорции на разных экранах.
Цвета можно выбирать с помощью HEX, RGB, RGBA или HSL. Использование прозрачности через RGBA удобно для наложения линии на фон: hr { background-color: rgba(52, 152, 219, 0.5); height: 2px; }.
Для более тонких настроек визуального вида можно добавить border-radius, например hr { height: 3px; background-color: #9b59b6; border-radius: 2px; }, что делает края линии сглаженными.
Создание пунктирной и штриховой линии
Для создания горизонтальной линии с пунктиром или штрихом используется свойство border-style. Значения dashed и dotted позволяют формировать линии с разрывами и точками соответственно.
Пример пунктирной линии: border-bottom: 2px dotted #333;. Здесь 2px задаёт толщину, dotted – стиль, #333 – цвет линии. Длина и промежутки точек определяются автоматически браузером, но можно регулировать с помощью border-image для более точного контроля.
Пример штриховой линии: border-bottom: 3px dashed #555;. Толщина влияет на визуальное восприятие штрихов, а цвет обеспечивает контраст с фоном. Для увеличения промежутков между штрихами используют border-spacing или комбинируют с linear-gradient в background для сложных паттернов.
Для центровки линии в блоке применяют width и margin: 0 auto;. Например: width: 60%; margin: 0 auto; создаёт аккуратную горизонтальную линию, занимающую 60% ширины контейнера.
При необходимости комбинировать стили: можно объединять dotted и dashed в псевдоэлементах ::before или ::after, чтобы создать уникальные визуальные эффекты без дополнительных графических файлов.
Добавление градиента к горизонтальной линии
Для создания горизонтальной линии с градиентом в CSS используется свойство background вместо стандартного <hr> с цветом. Самый простой способ – применить линейный градиент к блочному элементу.
Пример:
hr {
border: none;
height: 4px;
background: linear-gradient(to right, #ff7e5f, #feb47b);
}
Градиент можно направлять под разными углами с помощью значения to right, to left, to bottom или градусного указания. Для плавного перехода нескольких цветов используют дополнительные цветовые остановки.
Пример с тремя цветами и остановками:
hr {
border: none;
height: 3px;
background: linear-gradient(90deg, #ff0000 0%, #00ff00 50%, #0000ff 100%);
}
Если нужна тонкая линия, можно уменьшить height до 1–2px и добавить border-radius для закругленных краев:
hr {
border: none;
height: 2px;
border-radius: 1px;
background: linear-gradient(to right, #f06, #4a90e2);
}
Для адаптивного дизайна градиент можно использовать с процентными значениями или относительными единицами, чтобы линия корректно отображалась на разных ширинах экрана.
Использование псевдоэлементов ::before и ::after
Псевдоэлементы ::before и ::after позволяют создавать декоративные горизонтальные линии без добавления дополнительных HTML-элементов. Они вставляются виртуально перед или после содержимого блока и полностью управляются через CSS.
Для создания линии необходимо задать свойство content, иначе псевдоэлемент не будет отображаться. Например, content: ""; создаёт пустой элемент, который можно стилизовать.
Основные свойства для линии: display: block; или inline-block, width, height, background-color. Горизонтальная ориентация достигается шириной больше высоты, например, height: 2px; width: 100%;.
Пример добавления линии сверху и снизу заголовка:
h2::before, h2::after {
content: "";
display: block;
height: 2px;
background-color: #333;
margin: 8px 0;
}
Для центровки линии относительно текста используют text-align: center; на родителе или margin: 0 auto; на псевдоэлементе. Разделители можно стилизовать градиентом через background: linear-gradient() или добавить тень с box-shadow.
Псевдоэлементы удобно применять для создания динамических линий с анимацией: можно изменять width или opacity при наведении, используя transition. Это позволяет визуально выделять разделы контента без лишних тегов.
Использование ::before и ::after повышает семантику HTML, так как структура документа остаётся чистой, а визуальные элементы полностью управляются через CSS.
Размещение линии с отступами и выравниванием
Для точного контроля положения горизонтальной линии в CSS используют свойства отступов и выравнивания. Основной инструмент – тег <hr>, к которому применяются внешние и внутренние отступы, а также свойства ширины и выравнивания.
Примеры настройки отступов и выравнивания:
- Отступ сверху и снизу:
margin-topиmargin-bottomопределяют расстояние между линией и соседними элементами. Например,margin: 20px 0;создаст 20px сверху и снизу. - Горизонтальные отступы:
margin-leftиmargin-rightзадают смещение линии от краев контейнера. Значениеautoпозволяет центрировать линию. - Ширина линии:
widthопределяет длину линии. Можно использовать абсолютные значения, напримерwidth: 300px;, или относительные –width: 50%;. - Выравнивание:
display: block;сmargin-left: auto; margin-right: auto;обеспечивает горизонтальное центрирование линии.
Пример CSS для линии с отступами и выравниванием по центру:
hr {
width: 60%;
margin: 30px auto;
border: 1px solid #333;
}
Для выравнивания линии слева или справа можно использовать:
margin-left: 0; margin-right: auto;– выравнивание по левому краю.margin-left: auto; margin-right: 0;– выравнивание по правому краю.
Если требуется создать линию с разными отступами от краев:
hr {
width: 70%;
margin: 20px 15%;
border-top: 2px dashed #666;
}
Таким образом, комбинация ширины, маргинов и стиля границы позволяет гибко управлять расположением линии, создавая как центрированные, так и смещённые варианты с точными отступами.
Горизонтальная линия с текстом посередине
Для создания линии с текстом по центру чаще используют комбинацию <hr> или border и псевдоэлементов. Такой подход обеспечивает точное позиционирование текста и гибкость в стилизации.
Пример с использованием flexbox и span:
<div class="line-with-text"> <span>Пример текста</span> </div>
CSS для выравнивания и оформления:
.line-with-text {
display: flex;
align-items: center;
text-align: center;
margin: 20px 0;
}
.line-with-text::before,
.line-with-text::after {
content: "";
flex: 1;
border-bottom: 1px solid #000;
}
.line-with-text span {
padding: 0 10px;
font-weight: bold;
}
Особенности метода:
- Текст автоматически центрируется независимо от длины линии.
- Цвет и толщина линии регулируются через
border-bottom. - Отступы текста создаются с помощью
padding.
Альтернативный способ – использовать position: relative и absolute для текста:
<div class="hr-text">Текст</div>
.hr-text {
border-top: 1px solid #000;
text-align: center;
line-height: 0;
margin: 20px 0;
position: relative;
}
.hr-text::before {
content: attr(data-text);
position: absolute;
top: -10px;
background: #fff;
padding: 0 5px;
}
Этот метод подходит, если нужно наложить текст поверх линии без влияния на её длину. Можно легко менять шрифт, цвет и фон текста, сохраняя горизонтальный разделитель неизменным.
Анимация линии с помощью CSS
Для создания анимированной горизонтальной линии можно использовать псевдоэлементы и свойства width, transform или scaleX с CSS-анимацией. Например, линия, которая «выдвигается» слева направо, реализуется через @keyframes:
@keyframes expandLine { from { transform: scaleX(0); } to { transform: scaleX(1); } }
Для плавного эффекта необходимо применить transform-origin: left; и задать transition или animation для псевдоэлемента ::before или ::after блока линии.
Пример: линия толщиной 3px, длиной 100%, анимация 1,2 секунды с плавной кривой ускорения:
hr { border: none; height: 3px; background: #3498db; position: relative; overflow: hidden; } hr::before { content: ''; position: absolute; left: 0; top: 0; height: 100%; width: 100%; background: #3498db; transform: scaleX(0); transform-origin: left; animation: expandLine 1.2s ease forwards; }
Можно комбинировать несколько линий с разными цветами и задержкой animation-delay, чтобы создавать эффект «нарастающей» последовательности. Для мигания линии используют opacity в @keyframes, а для скользящего эффекта – transform: translateX() с бесконечным циклом infinite.
При работе с адаптивной версткой лучше использовать width: 100% и относительные единицы, чтобы анимация корректно отображалась на любых экранах без искажения.
Вопрос-ответ:
Как добавить стандартную горизонтальную линию в HTML с помощью CSS?
В HTML для создания горизонтальной линии используется тег . По умолчанию браузер применяет к нему стандартный стиль, но его можно изменять с помощью CSS. Например, можно задать толщину линии через свойство height, цвет через background-color и убрать стандартный отступ с помощью margin. Пример: hr { height: 2px; background-color: #333; border: none; margin: 20px 0; }. Такой подход позволяет оформить линию без использования дополнительных элементов.
Можно ли создать горизонтальную линию с градиентом?
Да, для этого используют CSS-свойство background с градиентом. Вместо обычного цвета можно задать линейный градиент, чтобы линия плавно меняла оттенки. Пример: hr { height: 4px; border: none; background: linear-gradient(to right, red, yellow, green); }. Такая линия выглядит более выразительно и подходит для разделения контента с визуальным акцентом.
Как сделать пунктирную или штриховую горизонтальную линию?
Для создания пунктирной линии используют свойство border. Вместо стандартного border: none; можно задать: hr { border: none; border-top: 2px dashed #000; }. Здесь dashed задаёт пунктир, а solid или dotted могут использоваться для сплошной или точечной линии соответственно. Такой способ удобен для декоративных разделителей.
Можно ли изменить ширину и положение горизонтальной линии?
Да, ширину линии задают через свойства width и max-width. Для позиционирования используют margin. Например, чтобы линия занимала половину ширины блока и была выровнена по центру: hr { width: 50%; margin: 20px auto; }. Это позволяет гибко управлять расположением линии внутри страницы.
Как создать горизонтальную линию с тенями или эффектом 3D?
Для создания визуального объёма используют CSS-свойства box-shadow или градиенты. Например: hr { height: 3px; border: none; background-color: #ccc; box-shadow: 0 2px 2px rgba(0,0,0,0.2); }. Такой приём делает линию более заметной и создаёт ощущение глубины, что полезно для отделения блоков контента.
Какие способы добавления горизонтальной линии в CSS существуют?
Существует несколько методов создания горизонтальной линии. Самый простой — использование HTML-тега , к которому можно применять CSS-стили для изменения толщины, цвета, длины и отступов. Также можно использовать псевдоэлементы, например ::before или ::after, чтобы добавить линию к блоку с помощью свойства border. Ещё один способ — применять CSS-свойство border к отдельному элементу, например div, и задавать ему высоту 1–2 пикселя, чтобы он выглядел как линия. Каждый метод позволяет гибко управлять внешним видом линии и её расположением на странице.
Как сделать горизонтальную линию с градиентом в CSS?
Для создания линии с градиентом можно использовать свойство background вместо border. Например, можно задать элементу div с небольшой высотой (1–3 пикселя) градиент через linear-gradient. При этом градиент может быть горизонтальным или вертикальным, в зависимости от угла наклона, указанного в linear-gradient. Такой подход позволяет получить линии с плавным переходом цветов, не прибегая к изображениям. Также можно комбинировать градиент с псевдоэлементами, чтобы добавить декоративные эффекты на разные участки линии.
