根据http://www.quirksmode.org/css/contents.html:
IE 8-10(也可能是旧版本)有一个小错误:在嵌套元素上单击鼠标不会触发 :active。
IE7 的情况更糟。
您可以使用 JavaScript 来模拟 :active 行为:
代替
.div1:hover .div2 {background-color:yellow;}
.div1:active .div2 {background-color: grey;}
和
.hover {background-color: yellow;}
.active {background-color: grey;}
并添加以下内容(如果您使用 jQuery):
<script type="text/javascript">
$('.div1').hover(function(){
$('.div2').toggleClass('hover');
});
$('.div1').mousedown(function(){
$('.div2').addClass('active');
}).mouseup(function(){
$('.div2').removeClass('active');
});
</script>
或者,如果您使用 MooTools:
<script type="text/javascript">
$$('.div1').addEvents({
'mouseenter': function() { $$('.div2').addClass('hover'); },
'mouseleave': function() { $$('.div2').removeClass('hover'); },
'mousedown': function() { $$('.div2').addClass('active'); },
'mouseup': function() { $$('.div2').removeClass('active'); },
});
</script>
jsFiddle:http: //jsfiddle.net/4vaY6/201/