outline-offset
Властивість в CSS зсувам певного контуру від краю кордону елемента шляхом зазначеної суми. Контур, який відрізняється від межі, не займає місця на сторінці (як абсолютно позиціонований елемент), тому контур може бути зміщений будь-якою величиною, і це не вплине на положення або розташування оточуючих елементів.
.example ( outline: solid 2px blue; outline-offset: 10px; )
Контури, визначені за допомогою outline
властивості, часто використовуються як фокусні кільця для доступності. Таким чином, outline-offset
властивість дозволяє змінювати положення фокусного кільця.
Цінності
outline-offset
приймає значення одного виду, довжину, яке може бути:
0
(за замовчуванням)- Будь-яка інша допустима довжина із зазначеною одиницею (включаючи від’ємні значення)
Зауважте, що outline-offset
, як, наприклад outline-width
, не приймає відсоткові значення.
Позиціонування структури
За замовчуванням контур елемента малюється відразу за межами (або безпосередньо за межами місця, де буде проведений кордон, якщо буде визначено межу). Отже, технічно можливо поєднати контур і межу для двомежного ефекту:
Звідти outline-offset
можна використовувати для зміни положення контуру щодо краю межі. Спробуйте демонстраційну версію, яка дозволяє інтерактивно змінювати значення зміщення контуру за допомогою повзунка. Значення зміщення відображається на сторінці під час переміщення повзунка:
Як зазначалося вище, outline-offset
приймає від'ємні значення, які зміщуватимуть контур у протилежному напрямку (до центру елемента), як показано в наступному інтерактивному демо. Зверніть увагу, що контур починається з -40 пікселів:
Якщо ви переглянете вищезгадану демонстраційну версію у Firefox, ви спочатку помітите, що контур здається правильним, але коли регулюється повзунок, контур не відображається гладко і опиняється в неправильному положенні. Прокрутка елемента з поля зору, а потім повернення у поле зору змушує браузер перефарбувати контур у правильне положення. Здається, це помилка лише у Firefox.
Не є частиною outline
стенографії
Подібно border
власності, outline
властивість є узагальнюючим , що представляє три властивості: outline-color
, outline-style
і outline-width
.
Отже, outline-offset
властивість не представлена в цьому чи будь-якому іншому скороченому властивості, тому його потрібно декларувати окремо від самого визначеного контуру.
Пов’язані
- контур
- кордон
Більше інформації
- контур-зміщення на W3C
Підтримка браузера
Дані про підтримку веб-переглядача подані компанією Caniuse, яка містить більше деталей. Цифра вказує на те, що браузер підтримує цю функцію на цій версії та вище.
Робочий стіл
Chrome | Firefox | IE | Край | Сафарі |
---|---|---|---|---|
4 | 2 | 11 | 15 | 3.1 |
Мобільний / планшетний
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 2.1 | 3.2 |
Індикатор „частково” для IE означає, що IE не підтримує outline-offset
, але підтримує outline
скорочення та три властивості, які він представляє.
На додаток до помилки, згаданої вище в розділі «Позиціонування структури», у Firefox є помилка, коли контур намальований неправильно, якщо елемент має дочірній елемент, який перевищує батьківський кордон (наприклад, за допомогою негативних полів або абсолютного позиціонування) . Отже, outline-offset
значення буде відносно розширеної межі, створеної переповнюючим нащадком, а не вихідних кордонів батьківських елементів. Щоб краще це зрозуміти, див. Цей CodePen, цей потік переповнення стека та цей звіт про помилку (заслуга читача Метта Вейнза за надсилання цієї помилки).