Как добавить линию возле текста?

Влад Мержевич

Internet Explorer Chrome Opera Safari Firefox Android iOS
4.0+ 1.0+ 4.0+ 1.0+ 1.0+ 1.0+ 1.0+

Задача

Добавить сбоку от абзаца текста вертикальную линию.

Решение

Можно по-разному привлечь внимание читателя к тексту. Например, сделать текст жирного начертания, изменить его цвет, использовать фон, нарисовать рамку. Но что если требуется не просто выделить текст, сколько отделить один текстовый блок от другого, разделить их на разные смысловые части? Вот тут использование линий и отступов просто неоценимо.

Текстовый блок на веб-странице сильно отличается от своего печатного собрата. Главным отличием является варьируемая ширина и высота текста, которые зависят от разрешения монитора, настроек операционной системы, браузера и других подобных вещей. Данные особенности придают верстке веб-страниц определенную сложность, но при этом порождают специфичные техники, которые намного упрощают процесс создания сайта. Рассмотрим, как можно использовать стили, чтобы создать произвольную линию возле текста, независимую от его размеров.

Для создания линий используется свойство CSS — border, которое устанавливает рамку вокруг блока. В частных случаях, для создания линии лишь с одной стороны элемента, используются свойства border-bottom, border-top, border-left и border-right, они соответственно задают линию снизу, сверху, слева и справа.

Значения этих свойств перечисляются через пробел и сразу устанавливают тип линии, её толщину и цвет. Стиль линии может принимать одно из восьми значений, как показано на рис. 1, а толщина задается, как правило, в пикселах.

Типы линий

Рис. 1. Типы линий

В примере 1 показано создание вертикальной линии рядом с текстом.

Пример 1. Вертикальная линия слева от текста

HTML5CSS 2.1IECrOpSaFx

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Линия слева от текста</title>
  <style type="text/css">
   .line { 
    border-left: 2px solid #ccc; /* Параметры линии */ 
    margin-left: 20px; /* Отступ слева */
    padding-left: 10px; /* Расстояние от линии до текста */ 
   }
  </style> 
 </head> 
 <body> 
  <p class="line">Изучая с позиций, близких гештальтпсихологии и психоанализу 
  процессы в малой группе, отражающих неформальную микроструктуру общества, 
  Дж.Морено показал, что компульсивность дает стресс в силу которого смешивает 
  субъективное и объективное, переносит свои внутренние побуждения на реальные 
  связи вещей.</p> 
 </body>
</html>

Чтобы исходный стиль абзаца оставить неизменным, введён новый класс line, который устанавливает возле абзаца вертикальную линию. Данный класс, кроме того, ещё задаёт смещение 20 пикселов от левого края окна до текста с помощью свойства margin-left и отступ от линии до текста через padding-left, без него текст будет соприкасаться с линией слишком плотно. Результат показан на рис. 2.

Линия слева от текста

Рис. 2. Линия слева от текста

CSS по теме

Не выкладывайте свой код напрямую в комментариях, он отображается некорректно. Воспользуйтесь сервисом cssdeck.com или jsfiddle.net, сохраните код и в комментариях дайте на него ссылку. Так и результат сразу увидят.