Outline offset в CSS — это свойство, позволяющее смещать контур элемента относительно его границ. В отличие от border
, который влияет на размер элемента и может изменять его размеры, outline
не участвует в расчёте размеров элемента. Однако, с помощью outline-offset
можно задать отступ между контуром и элементом, создавая эффект визуального выноса.
Синтаксис свойства outline-offset
:
cssoutline-offset: <длина>; длина>
<длина>длина>
— расстояние между контуром и элементом. Может быть задано в любых допустимых единицах длины, таких как px
, em
, rem
, %
, vh
, vw
и т.д.
Значение по умолчанию — 0
.
Примеры:
css/* Смещение на 10px */ button { outline: 2px solid #000; outline-offset: 10px; } /* Отрицательное значение */ div { outline: 3px dashed #f00; outline-offset: -5px; }
Свойство outline-offset
не изменяет размер элемента и его блочную модель. Оно влияет исключительно на визуальное отображение outline
, перемещая его на заданное расстояние от границ элемента.
Пример:
css.box { width: 200px; height: 100px; outline: 4px solid blue; outline-offset: 15px; }
В данном примере контур будет располагаться на 15px дальше от элемента, чем в случае, если бы outline-offset
не был задан.
Фокусировка элементов:
При создании пользовательских эффектов фокусировки (:focus
) outline-offset
позволяет сделать контур более заметным и информативным.
cssinput:focus { outline: 2px solid #00f; outline-offset: 5px; }
Декоративные эффекты:
Свойство часто используют для создания эффектов "парящей" рамки или для имитации двойного контура.
Доступность и UX:
Смещение outline
позволяет выделить активные элементы и улучшить их визуальное восприятие без изменения структуры верстки.
Отрицательные значения:
outline-offset
может принимать отрицательные значения, что позволяет переместить контур внутрь элемента. Однако это может привести к наложению outline
на контент элемента.
Сочетание с outline-style:
outline-offset
работает только при наличии свойства outline
. Без явного задания outline
, смещение не будет заметным.
Взаимодействие с border и padding:
В отличие от border
, outline
и outline-offset
не влияют на размеры элемента, что делает их удобными для создания эффектов, не изменяющих структуру верстки.
1. Можно ли использовать outline-offset без outline?
Нет, outline-offset
не оказывает никакого эффекта без явного задания outline
.
2. Работает ли outline-offset с border?
Outline-offset
не взаимодействует с border
. Он только смещает outline
и не влияет на border
.
3. Поддерживается ли outline-offset во всех браузерах?
Да, outline-offset
поддерживается всеми современными браузерами, включая Chrome, Firefox, Edge и Safari.
4. Какое значение outline-offset по умолчанию?
Значение по умолчанию для outline-offset
— 0
, что означает отсутствие смещения.
5. Как использовать outline-offset для улучшения доступности?
Для улучшения доступности рекомендуется использовать outline-offset
для выделения активных элементов, например, кнопок и полей ввода, без изменения размеров элементов.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.