Псевдокласс :focus в CSS
Псевдокласс :focus выбирает и стилизует элементы, находящиеся в фокусе у пользователя.
Элементы, такие как <input>, <button>, и <textarea>, могут получать фокус либо при нажатии клавиши Tab на клавиатуре, либо по клику. Неинтерактивные элементы также могут получать фокус с клавиатуры, если у них указан атрибут tabindex="0".
Вопросы доступности
Визуальный индикатор фокуса должен быть доступен для всех пользователей. Согласно WCAG 2.1 SC 2.4.7 Focus Visible, индикатор фокуса должен быть четко виден и обеспечивать коэффициент контрастности не менее 3:1 по отношению к соседним цветам.
При удалении стандартной обводки фокуса всегда заменяйте её на пользовательский индикатор, соответствующий требованиям WCAG 2.1 SC 2.4.7.
Для улучшения пользовательского опыта рекомендуется использовать псевдокласс :focus-visible вместо :focus. Он применяет стили только при фокусе с клавиатуры, избегая ненужных визуальных изменений при использовании мыши или сенсорного экрана.
Псевдокласс :focus в CSS
:focus {
outline: none;
}Версия
Синтаксис
Пример синтаксиса CSS :focus
:focus {
css declarations;
}Пример использования селектора :focus:
Пример кода CSS :focus
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
input:focus {
background-color: #ccc;
}
</style>
</head>
<body>
<h2>:focus selector example</h2>
<form>
Name:
<input type="text" name="name" /> Surname:
<input type="text" name="surname" />
</form>
</body>
</html>Пример использования селектора :focus с тегом <label>:
Ещё один пример кода CSS :focus
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
input[type=text] {
width: 100px;
transition: width .2s ease-in-out;
}
input[type=text]:focus {
width: 150px;
background-color: #eee;
}
</style>
</head>
<body>
<h2>:focus selector example</h2>
<form>
<label for="search">Search:</label>
<input type="text" name="search" id="search" />
</form>
</body>
</html>Практика
Какова функция псевдокласса ':focus' в CSS?