Перейти к содержимому

CSS свойство outline

Контур (outline) — это линия, которая рисуется за пределами границ элемента. Она одинакова со всех сторон. Свойство outline является сокращённой записью для:

Свойство outline-color не работает, если используется отдельно, поскольку значение по умолчанию для outline-style — none. Контур не занимает место и не влияет на размеры макета элемента.

Контур vs. Граница

Контур и граница похожи, но между ними есть много различий. В отличие от границ, контуры строго прямоугольные и не могут быть скруглены с помощью свойства border-radius. Свойство outline рисует одну линию за пределами края границы элемента. Контур не занимает место, так как находится за пределами содержимого элемента.

Начальное значениеmedium none currentcolor
Применяется коВсем элементам. Также применяется к ::first-letter.
НаследуетсяНет.
АнимацияДа. Контур элемента можно анимировать.
ВерсияCSS2
Синтаксис DOMobject.style.outline = "#eee dashed 10px";

Синтаксис

CSS outline

css
outline: outline-width | outline-style | outline-color | outline-offset | initial | inherit;

Пример использования свойства outline:

Пример кода CSS outline

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p.dotted {
        outline: dotted;
      }
      p.dashed {
        outline: dashed;
      }
    </style>
  </head>
  <body>
    <h2>Outline property example</h2>
    <p class="dotted">Lorem Ipsum is simply dummy text of the printing... </p>
    <p class="dashed">Lorem Ipsum is simply dummy text of the printing...</p>
  </body>
</html>

Результат

CSS outline and border together

В приведённом примере стиль контура первого элемента — dotted (пунктирный), а второго — dashed (штриховой).

В следующем примере у первого элемента нет границы, а у второго она есть. Обратите внимание, что контур второго элемента находится за пределами его границы:

Пример свойства outline для элемента с границей:

CSS outline и border вместе, пример

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div.ex1 {
        outline-style: solid;
        outline-width: thick;
      }
      div.ex2 {
        border: 1px solid #fc7f01;
        outline-style: solid;
        outline-width: thick;
      }
    </style>
  </head>
  <body>
    <h2>Outline property example</h2>
    <div class="ex1">Lorem Ipsum is simply dummy text of the printing...</div>
    <br />
    <div class="ex2">Lorem Ipsum is simply dummy text of the printing...</div>
  </body>
</html>

В следующем примере контур находится за пределами границы второго элемента.

Пример свойства outline-color в сочетании с outline-style:

Пример кода CSS outline, цвет

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div.blue {
        outline-style: solid;
        outline-color: #1c87c9;
      }
      div.green {
        border: 1px solid black;
        outline-style: solid;
        outline-color: #8ebf42;
      }
    </style>
  </head>
  <body>
    <h2>Outline property example</h2>
    <div class="blue">Lorem Ipsum is simply dummy text of the printing...</div>
    <br />
    <div class="green">Lorem Ipsum is simply dummy text of the printing...</div>
  </body>
</html>

Значения

ЗначениеОписание
outline-widthОпределяет ширину контура.
outline-styleОпределяет стиль контура.
outline-colorУстанавливает цвет контура.
outline-offsetСмещает контур от края границы.
initialЗаставляет свойство использовать значение по умолчанию.
inheritНаследует свойство от родительского элемента.

Практика

Что верно относительно свойства CSS Outline?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.