пятница, 17 октября 2008 г.

:hover в Internet Explorer для любого элемента

Как известно, в MSIE псевдокласс :hover работает только для ссылок. Это создает массу неудобств, но существует решение, которое позволяет обойти эту проблему. Основано оно на использовании так называемых behaviors для Internet Explorer и htc-скрипта, разработанного Peter Nederlof. Скачать его можно здесь: http://www.xs4all.nl/~peterned/htc/csshover.htc, скрипт распространяется по лицензии LGPL.

Подключается данный скрипт с помощью такого CSS-правила (чтобы не нарушать валидность CSS, желательно размещать это правило с помощью условных комментариев):

body { behavior:url("csshover.htc"); }

Каких либо дополнительных действий предпринимать не требуется, псевдокласс :hover будет работать корректно.

Также существует версия 2.x этого htc-скрипта, которая позволяет использовать псевдокласс :focus, однако содержит определенное ограничение: если для элементов a, input, textarea используются какие-то неизвестные псевдоклассы, в MSIE они также будут срабатывать как :focus.