Почему:: hover не работает на якоре без атрибута href? - PullRequest
5 голосов
/ 25 июня 2009

В моем приложении я не могу заставить работать стиль a:hover css, когда у моего тега привязки нет атрибута href.

Есть ли причина для этого?

Ответы [ 6 ]

9 голосов
/ 25 июня 2009

IE не поддерживает: hover в теге без href. Вы можете использовать href = "#" или href = "Javascript: void (0);" однако последний вариант, вероятно, не будет работать и в IE6.

Или используйте Javascript mouseover / mouseout.

2 голосов
/ 25 июня 2009

Hover предназначен для ссылок. Без HREF тег является просто якорем.

Другими словами ...

<a name="target"></a>

является ЯКОРОМ на странице, которая ...

<a href="#target">go there</a>

будет ССЫЛКА на.

Поскольку якоря не имеют визуального представления на странице ... a: hover будет бесполезен.

1 голос
/ 25 июня 2009

Попробуйте добавить DOCTYPE. IE имеет тенденцию игнорировать определенные директивы без него. В частности, : hover на теге привязки завершается неудачно без HREF в IE8, но работает, когда включен XHTML Transitional DOCTYPE .

1 голос
/ 25 июня 2009

Может и не быть ответом, но после: a: ссылка и a: посещение должны произойти:

См. W3Schools

0 голосов
/ 25 июня 2009

В спецификации W3C CSS 2.0 для селектора :hover ничего не говорится о требовании атрибута href.

Я подозреваю, что это что-то специфичное для реализации, скорее всего, IE глупый. Если я правильно помню, Microsoft изобрела селектор :hover до того, как он стал частью стандарта CSS, и первоначально он применялся только к якорям. Так что да, это, вероятно, причуды IE (6).

Хакерское исправление для IE6 (все IE?) Может заключаться в использовании href="#", который просто указывает на текущую страницу (и, следовательно, ничего не делает).

0 голосов
/ 25 июня 2009

Какой браузер вы используете? Это может быть причудой - конечно, href не требуется, я не думаю, т.е. когда используется устаревший метод <a name> для создания ссылок в документе.

...