:focus
и :active
два разных состояния.
:focus
представляет состояние, когда элемент в настоящее время выбран для получения ввода и
:active
представляет состояние, когда элемент в данный момент активируется пользователем.
Например, скажем, у нас есть <button>
. Не <button>
будет никакого состояния для начала. Это просто существует. Если мы используем Tab«фокус» для этого <button>
, теперь он входит в свое :focus
состояние. Если вы затем нажмете (или spaceнажмете), вы затем заставите кнопку войти в ее состояние ( :active
).
На этой ноте, когда вы нажимаете на элемент, вы даете ему фокус, который также культивирует иллюзию, что :focus
и :active
то же самое. Они не одинаковы. При нажатии кнопка находится в :focus:active
состоянии.
Пример:
<style type="text/css">
button { font-weight: normal; color: black; }
button:focus { color: red; }
button:active { font-weight: bold; }
</style>
<button>
When clicked, my text turns red AND bold!<br />
But not when focused only,<br />
where my text just turns red
</button>
редактировать: jsfiddle
document.activeElement
свойство, хотя оно должно быть в пробном улове, потому что IE8 может вызвать исключение. И помните, что старые версии браузеров могут относиться к: active и: focus по-разному.function activeElement() { try { return document.activeElement; /* can get exeption in IE8 */ } catch(e) { } }
:active
состояниеfocus
иactive
декларации не имеет значения. Это имеет значение только тогда, когда они противоречат друг другу, например,color:red
иcolor:blue
(тогда побеждает последний).Источник: CSS Псевдо-классы
источник
visited
ссылки не будут менять стиль при наведении или нажатии, потому что их "посещаемость" переопределит другие псевдоклассы. LVHFA - это порядок, который большинство людей захотят использовать в большинстве случаев. Не уверен, почему вы включилиlang
...Есть четыре случая.
:focus
(без активной).:active
(без фокуса).:active:focus
(активен и фокусируется одновременно).Пример:
Когда страница загружается, оба находятся в случае 1. Когда вы нажимаете клавишу Tab, вы фокусируете второй элемент Div и видите, что он демонстрирует случай 2. Когда вы нажимаете на первый элемент Div, вы видите случай 3. Когда вы нажимаете второй элемент Div, вы видите случай 4 ,
Является ли элемент фокусируемым или нет - это другой вопрос . Большинство не по умолчанию. Но, с уверенностью предположить
<a>
,<input>
,<textarea>
являются фокусируемыми по умолчанию.источник
:active
но нет:focus
. Это одна вещь, которую я смутил из-за того, что другие ответы не были адресованы.: focus - это когда элемент может принять ввод - курсор в поле ввода или ссылку, на которую был добавлен вклад.
: active - когда элемент активируется пользователем - время, когда пользователь нажимает кнопку мыши и затем отпускает ее.
источник
Активен, когда пользователь активирует эту точку (как при щелчке мышью, если мы используем вкладку из поля в поле, в активном стиле нет знака. Возможно, нажатие требует больше времени, просто попробуйте удерживать нажатой эту точку), фокусировка происходит после того, как точка активирована. Попробуй это :
источник
Фокус может быть дан только с клавиатуры ввода, но элемент может быть активирован с помощью мыши или клавиатуры.
Если бы вы использовали: фокус на ссылку, правило стиля будет применяться только при нажатии кнопки на клавиатуре.
источник
:focus
не работает так. Текстовое поле, которое я набираю, в данный момент имеет фокус, потому что я нажал кнопку. Он также может потерять и восстановить фокус, щелкнув по нему снова и снова. Через секунду я собираюсь выделить кнопку «Добавить комментарий» справа, нажав на нее. Все это без ввода с клавиатуры, что вызывает фокус.Использование «фокуса» даст пользователям клавиатуры тот же эффект, который пользователи мыши получают при наведении курсора мыши. «Активный» необходим для получения того же эффекта в Internet Explorer.
Реальность такова, что эти состояния не работают, как они должны для всех пользователей. Неиспользование всех трех селекторов создает проблемы с доступностью для многих пользователей с клавиатурой, которые физически не могут использовать мышь. Я приглашаю вас принять вызов #nomouse (nomouse dot org).
источник