IE 7/8: активный псевдокод на блочных элементах

я столкнулся с проблемой, связанной с игнорированием IE7/8 псевдокласса :active для элементов с display:block;

HTML:

<a>My Link</a>

CSS, который работает:

a:active{color:yellow}

Неудачный CSS:

a{display:block}
a:active{color:yellow}

Кто-нибудь знает решение этой проблемы, или мне придется прибегнуть к JS?


person wilsonpage    schedule 22.03.2011    source источник
comment
Скрипт: jsfiddle.net/xbLDM   -  person Kevin    schedule 22.03.2011


Ответы (1)


По иронии судьбы, @Kevin уже «исправил» вашу проблему, даже не осознавая этого.

Измените HTML из этого:

<a>My Link</a>

к этому:

<a href="#">My Link</a>

и это работает в IE7, см.: http://jsbin.com/exuga3

Подобные неожиданные вещи могут произойти, когда у вас есть теги <a> без атрибута href.

Если вам действительно не нужен "указатель мыши в виде руки", укажите cursor: default: http://jsbin.com/exuga3/4

person thirtydot    schedule 22.03.2011
comment
Спасибо за вашу помощь. Кажется, это работает в IE7, и атрибут href, похоже, не имеет значения. Проблема, с которой я сталкиваюсь в моей локальной тестовой среде, все еще происходит. Я опубликую другой пример. - person wilsonpage; 22.03.2011
comment
Я думаю, что источником моей проблемы было наличие дочерних элементов внутри тега a. Судя по моим тестам, это делает :active бесполезным в IE‹9. - person wilsonpage; 28.04.2011
comment
Быстрый тест, кажется, подтверждает: jsbin.com/exuga3/6 - бит чернил является дочерним элементом из a, и он не запускает :active в IE8. - person thirtydot; 28.04.2011