Вебсправочник
Справочник CSS

outline-offset: отступ контура фокуса

Свойство outline-offset отодвигает контур outline от края элемента или переносит его внутрь при отрицательном значении. Контур удобно использовать для видимого состояния клавиатурного фокуса.

Назначение

Свойство outline-offset отодвигает контур outline от края элемента или переносит его внутрь при отрицательном значении. Контур удобно использовать для видимого состояния клавиатурного фокуса.

Как это работает

Outline не резервирует место в раскладке. Поэтому добавление контура и изменение его отступа не должны сдвигать соседние кнопки, в отличие от изменения ширины обычной рамки.

Пример

<style>.actions{display:flex;gap:1rem;padding:1rem}.actions button{padding:.6rem 1rem}.actions button:focus-visible{outline:3px solid #176b50;outline-offset:4px}</style>
<div class="actions"><button type="button">Сохранить</button><button type="button">Отмена</button></div>

Что должно получиться

При переходе Tab вокруг активной кнопки появляется отделённый от неё контур. Кнопки не прыгают по горизонтали. Они демонстрационные и не сохраняют данные.

Граница применения и частая ошибка

Контур может обрезаться предком с overflow:hidden или перекрываться соседним элементом. Отрицательный отступ способен наложить линию на текст. Не удаляйте стандартный outline без проверенной замены для каждого состояния.

Самостоятельная проверка

Поставьте кнопку вплотную к краю узкого контейнера и проверьте контур. Затем увеличьте расстояние между кнопками и сравните положительный и отрицательный отступ при масштабе 200%.

HTML и CSS можно изменить в песочнице ниже. Она изолирована: JavaScript, внешние ресурсы и отправка форм отключены. Проверки печати, загрузки файлов и сетевых ответов выполняйте в отдельном учебном проекте.

Попробуйте сами

HTML + CSS песочница
РЕЗУЛЬТАТ · ИЗОЛИРОВАННЫЙ ПРЕДПРОСМОТР
Измените код и нажмите «Запустить». JavaScript и внешние запросы отключены.
Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.