CSS outline — обведення поза межами елемента


Властивість outline задає зовнішній контур навколо елементу. Зовнішній контур не впливає на розміри елемента, на відмінну від звичайних кордонів (властивість border).

Властивість outline

Ця властивість універсальна і дозволяє одночасно задавати наступні значення:

  • outline-color
  • outline-style
  • outline-width

Значення можуть розташовуватися в будь-якій послідовності, також непотрібні значення можуть бути не вказані (наприклад: outline:solid #ff0000;), в такому випадку не вказане значення браузер встановить без задання.

Контури відрізняються від кордонів декількома якостіми:

  • Контур, намальований навколо елемента, за межами його кордонів.
  • Контур не займає простір.
  • Контур може бути округлим.
  • Не можна задати параметри на окремих сторонах контуру.

На відміну від кордону елемента (наприклад, встановлено за допомогою кордону або пов'язаних з ним властивостей), контур елемента не займає зайвого місця, і може бути не прямокутним.

Контур завжди знаходиться над блоком, і це не впливає на положення чи розмір елементу або інших елементів.

автор: Svitlana

Загальний опис

автор: NagarD

Синтаксис

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

Властивість outline може отримувати 5 значень:

outline-color

Встановлює колір контуру.

автор: Svitlana

outline-style

Встановлює стиль контуру.

автор: Svitlana

outline-width

Встановлює товщину контуру.

автор: Svitlana

initial

Встановлює властивість у значення без задання

автор: Svitlana

inherit

Вказує на спадковість властивості від свого батьківського елемента.

автор: Svitlana

Значення без задання: medium invert color
Наслідує: Ні
Анімується: Так
JavaScript синтаксис: object.style.outline="#0000FF dotted 5px"

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
94 88 16.4 80 94 8
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
94 94 88 16.4

Приклади

+ запропонувати свій приклад у пісочниці

Контур — товстий крапчастий зелений: він малюється поверх сторінки і, на відміну від border, не займає місця в макеті.

HTML

<p>Абзац із зеленим крапчастим контуром навколо.</p>

CSS

p {
    outline: #00FF00 dotted thick;
    margin: 12px;
}
автор: Svitlana

Обидва середні квадрати отримали товсту червону обвідку. border збільшує коробку й розсуває сусідів, outline малюється поверх і нічого не зміщує — порівняй ряди.

HTML

<p>border: 10px — сусіди роз'їхалися</p>
<div class="row">
  <div class="b">1</div>
  <div class="b bor">2</div>
  <div class="b">3</div>
</div>

<p>outline: 10px — ряд стоїть на місці</p>
<div class="row">
  <div class="b">1</div>
  <div class="b out">2</div>
  <div class="b">3</div>
</div>

CSS

body {
  font-family: monospace;
  font-size: 14px;
  padding: 12px;
}

p {
  margin: 22px 0 6px;
  color: #444;
}

.row {
  display: flex;
  gap: 14px;
}

.b {
  box-sizing: content-box;
  width: 70px;
  height: 70px;
  line-height: 70px;
  text-align: center;
  background-color: #ffd166;
  color: #333;
}

.bor {
  border: 10px solid #c0392b;
}

.out {
  outline: 10px solid #c0392b;
}
автор: NagarD

Різні значення у дії

HTML

<p>Вибери потрібні значення для <code>outline</code>:</p>

<input type="number" class="input" min="0" value="16" id="width" onchange="change()"></input>

<select id="style" onchange="change()">
  <option value="none">none</option>
  <option value="hidden">hidden</option>
  <option value="dotted">dotted</option>
  <option value="dashed">dashed</option>
  <option value="solid">solid</option>
  <option value="double">double</option>
  <option value="groove">groove</option>
  <option value="ridge">ridge</option>
  <option value="inset">inset</option>
  <option value="outset">outset</option>
</select>

<input type="color" id="color" onchange="change()">

<hr>

<div id="block"></div>

CSS

body {
	padding: 36px;
  text-align: center;
  line-height: 1.45;
  font-size: 20px;
  font-family: sans-serif;
  counter-reset: chapter 2;
}

#block {
  padding: 36px;
  width: 275px;
  margin: 75px auto 0 auto;
  border: 8px solid #666;
  outline: 16px solid #000;
  transition: all .15s ease-in;
}

JS

function change() {
  block.style.outline = width.value + 'px ' + getNewValue(style) + ' ' + color.value;
}

function getNewValue(el) {
  var result = '';
  for (var i = 0; i < el.options.length; i++) {if (window.CP.shouldStopExecution(0)) break;
    if (el.options[i].selected == true) {
      result = el.options[i].value;
    }
  }window.CP.exitedLoop(0);
  return result;
}
//# sourceURL=pen.js
автор: Svitlana

Приклад використання

HTML

<div class="block outline">
	<code>
		border: 8px solid #888;<br>
		<strong>outline: 16px solid #444;</strong>
	</code>
</div>

<div class="block">
	<code>
		border: 8px solid #888;<br>
	</code>
</div>

CSS

.block {
	padding: 36px;
	text-align: center;
	border: 8px solid #888;
	
	background-color: #eee;
	width: 300px;
	margin: 36px;
	font-size: 18px;
}
.outline{
  outline: 16px solid #444;
}
автор: Svitlana

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід