Вот хорошее решение, которое я нашел в книге: «Антология Javascript»
Примерно так:
/* for all but IE */
#nav ul li.currentpage > a:hover {
background-color: #eff;
}
И код для обслуживания IE:
/* for IE */
* html #nav ul li.currentpage a:hover {
background-color: expression(/currentpage/.test(this.parentNode.className)? "#eff" : "#ef0");
}
Хак для IE заключается в том, что только IE думает, что есть обертка над html, и IE поддерживает функцию expression ().
Выражение использует регулярное выражение (/ currentpage /) и проверяет его на соответствие классу родительского узла, поэтому прямым потомкам элемента li.currentpage будет присвоено значение #eff, другим потомкам - значение # EF0.
Обратите внимание, что используемые цвета являются поддельными, пожалуйста, не комментируйте их; -)