: псевдокласс hover не работает с универсальным селектором * - PullRequest
0 голосов
/ 27 марта 2011

Если я пишу

h1:hover, li:hover {color:green;}

Оба элемента h1 и li получают эффект наведения.

Буф, если я пишу:

*:hover {color: green;} 

Это действует толькоякорные элементы.

Псевдокласс: hover не работает с универсальным селектором?

Ответы [ 2 ]

5 голосов
/ 27 марта 2011

Это работает. Подвох в том, что весь текст на вашей странице в конечном итоге становится зеленым, потому что элемент body также совпадает, поэтому вы не увидите эффекта «наведения мыши», пока курсор находится где-либо в окне просмотра (т.е. в теле страницы). Вы можете обойти это либо не используя универсальный селектор (я имею в виду, почему вы?), Либо указав body:hover цвет.

Если вы видите эффект наведения только на элементах a, возможно, у вас есть стиль a:hover, который переопределяет ваш стиль *:hover, поскольку универсальный селектор менее специфичен, чем селектор типа (то есть не специфичен для все). Но остальная часть текста всегда должна быть зеленой, пока вы не выведите курсор из области просмотра, например, переместив его в браузер Chrome или в сторону от окна. (Обратите внимание, что «область просмотра» в скрипте, на которую я ссылаюсь в моем комментарии, является iframe.)

0 голосов
/ 27 марта 2011

О каком браузере вы говорите? Нейтрализация html:hover и body:hover демонстрирует, что остальные элементы меняются соответственно при наведении, по крайней мере в Chrome, и я уверен, что любой другой современный браузер.

Демонстрация: jsfiddle.net / Marcel / cTpxS

...