Кратко
СкопированоПсевдокласс :focus используется, когда действительно нужно визуально выделить элементы в фокусе.
Пример
СкопированоПри попадании фокуса на кнопку будем показывать белую обводку. Обратите внимание, что мы сбросили стили для :focus, поэтому если установить фокус на кнопку, нажав на неё, обводки не будет. Но если использовать Tab, то обводка появится.
button:focus { outline: none;}.button:focus-visible { border: 2px solid #FFFFFF; outline: none;}
button:focus {
outline: none;
}
.button:focus-visible {
border: 2px solid #FFFFFF;
outline: none;
}
Как пишется
СкопированоПосле любого селектора ставим двоеточие и пишем ключевое слово focus:
a:focus-visible { outline: 2px solid hotpink;}
a:focus-visible {
outline: 2px solid hotpink;
}
Как понять
СкопированоЗачем нужен этот :focus, если есть :focus? Оба псевдокласса применяются, когда элемент в фокусе. Но отличие в том, что :focus используется только тогда, когда браузер считает, что наличие фокуса на элементе необходимо обозначить визуально.
Например, людям при использовании мышки или тачпада не обязательно знать, что элемент в фокусе, но когда для навигации используется клавиатура, визуальное отображение фокуса просто необходимо.
Если же элемент подразумевает использование клавиатуры (например, <input>), то неважно, что использовалось для навигации до него, :focus применится в любом случае.
Подсказки
Скопировано💡 Изменить стандартное поведение фокуса можно с помощью атрибутов contenteditable и tabindex.