Что такое outline в CSS: свойства, отличие от border и правила использования
Outline в CSS — это внешний контур элемента, который используется для визуального выделения без изменения размеров блока. Outline часто применяется для индикации фокуса элементов управления, особенно в формах и при навигации с клавиатуры. Он не занимает место в документе, не влияет на компоновку и не входит в модель блока (box model).
Outline в CSS управляется с помощью следующих свойств:
outline-style — задаёт стиль линии (solid, dotted, dashed, double, groove и др.).
outline-color — определяет цвет линии. Может использоваться любое допустимое CSS-значение цвета.
outline-width — устанавливает толщину контура.
outline-offset — смещает контур от края элемента.
Также доступно сокращённое свойство outline, которое объединяет ширину, стиль и цвет в одной записи.
Пример использования:
cssbutton { outline: 2px solid blue; }
Outline и border визуально схожи, но отличаются по нескольким ключевым параметрам:
Влияние на размер элемента:
Border входит в модель блока и влияет на размер.
Outline не влияет на размеры элемента.
Возможность задания сторон:
Border может быть задан по сторонам отдельно (border-top, border-right и т.д.).
Outline применим только к элементу в целом — нельзя задать только сверху или слева.
Рендеринг и перекрытие:
Outline рендерится поверх других элементов и не обрезается родительским элементом.
Border рендерится в пределах размеров элемента и может быть скрыт родительскими границами.
Outline широко применяется для визуального отображения фокуса, особенно в полях форм:
cssinput:focus { outline: 2px solid #0066cc; }
Это обеспечивает доступность интерфейса для пользователей, взаимодействующих с сайтом с помощью клавиатуры.
В ситуациях, когда необходимо визуально выделить элемент, не влияя на его размеры и расположение, outline предпочтительнее border.
Свойство outline-offset позволяет сместить контур на определённое расстояние от края элемента. Это используется для создания дополнительного визуального пространства между элементом и его контуром.
Пример:
cssbutton { outline: 2px solid red; outline-offset: 4px; }
Свойство outline поддерживается всеми современными браузерами, включая Chrome, Firefox, Safari, Edge и Opera. Однако в старых версиях Internet Explorer возможны ограничения, особенно в работе с outline-offset.
Использовать outline для индикации фокуса, не влияя на верстку.
Не полагаться на outline для оформления, влияющего на восприятие геометрии блока.
В интерфейсах с высокой доступностью не удалять outline без предоставления замены (например, box-shadow для фокуса).
Полное отключение outline без альтернатив:
css*:focus { outline: none; }
Это нарушает доступность и делает интерфейс менее удобным для навигации с клавиатуры.
Использование outline для внутренних границ. Для этого следует применять border или внутренние отступы (padding).
Outline играет важную роль в обеспечении доступности веб-контента. Он позволяет пользователям с нарушениями зрения или использующим вспомогательные технологии ориентироваться в интерфейсе. По стандартам WCAG рекомендуется сохранять видимый индикатор фокуса, если он задан outline.
Как скрыть outline безопасно?
Скрытие outline допустимо только при условии, что предоставляется альтернативный способ индикации фокуса, например, с помощью box-shadow или изменения фона.
Можно ли задать разный outline для каждой стороны?
Нет. Свойство outline применяется ко всему элементу целиком и не поддерживает задание сторон, в отличие от border.
Можно ли анимировать outline?
Анимация outline ограничена. Свойство outline-color может быть анимировано, но большинство браузеров не поддерживают плавную анимацию толщины или стиля линии.
Когда стоит использовать outline вместо border?
Outline предпочтителен при необходимости выделить элемент, не изменяя его размеров, например, при отображении фокуса.
Поддерживается ли outline на всех HTML-элементах?
Да. Outline можно применить к любому элементу, поддерживающему стилизацию, однако его видимость зависит от размеров и контекста отображения.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.