Вебсправочник
Практика вёрстки

Карточка с :focus-within: подсветка без лишней остановки Tab

Псевдокласс focus-within позволяет выделить контейнер, когда фокус находится на нём или внутри него. Это помогает заметить активную карточку, не превращая весь блок в дополнительную кнопку.

Назначение

Псевдокласс focus-within позволяет выделить контейнер, когда фокус находится на нём или внутри него. Это помогает заметить активную карточку, не превращая весь блок в дополнительную кнопку.

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

У контейнера остаётся обычная семантика, а переход выполняет настоящая ссылка. Когда ссылка получает фокус, рамка карточки меняется. Собственный видимый outline ссылки сохраняется и не заменяется одной подсветкой внешнего блока.

Пример

<style>.focus-card{padding:18px;border:2px solid #a6b3ab;border-radius:8px}.focus-card:focus-within{border-color:#11694e;background:#edf4ef}.focus-card a:focus-visible{outline:3px solid #9c5b00;outline-offset:3px}</style>
<article class="focus-card"><h2>Проверка макета</h2><p>Один понятный переход вместо кликабельной рамки.</p><a href="#next-step">К следующему шагу</a></article>
<h2 id="next-step">Следующий шаг</h2>

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

При переходе Tab на ссылку подсвечиваются и сама ссылка, и её карточка. Контейнер не добавляет отдельную остановку в клавиатурный маршрут, поскольку ему не назначен tabindex.

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

Не убирайте outline у интерактивного элемента ради декоративной рамки. Если внутри карточки несколько действий, человек должен понимать, какое из них сейчас активно. Hover не заменяет состояния клавиатурного фокуса.

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

Добавьте вторую ссылку с отдельной целью и пройдите обе клавиатурой. Временно отключите стили: порядок текста и назначение ссылок должны оставаться понятными. В песочнице внешние переходы ограничены.

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

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

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