div元素中的图像不处理CSS活动伪类

时间:2011-06-20 12:37:52

标签: css internet-explorer firefox

我有一个位于div元素内的图像,当鼠标经过它时,这个div元素会改变它的一些样式属性,使用CSS:hover伪类。这适用于所有浏览器。但div元素还有另一个类:active,它应该在单击时更改其背景颜色。

这是事情开始破裂的时候。在IE9(我安装的版本)中,当我点击图像时,div的背景颜色不会改变。只有当我点击div上的其他地方时,它才有效,颜色会发生变化。在Firefox中,无论我在div元素中单击的位置,即使单击图像,背景颜色也会发生变化。这就是我希望IE的行为方式,所以当usem点击div时,无论在哪里,都会触发:active效果。

是否有可用的解决方法或其他方法使其适用于IE?

2 个答案:

答案 0 :(得分:1)

在使用jsFiddle上的css进行一些玩弄之后,我没有找到任何CSS方法来解决这个问题:IE只是不想将 img 视为 div 的一部分。

我建议你在javascript中解决这个问题。使用onMouseDown。

伪:

(div or img).onMouseDown(div.addClass:"active")
(div or img).onMouseUp(div.removeClass : "active").

我建议使用js框架使其更容易。请参阅jquery mouseupmousedown

答案 1 :(得分:0)

这个问题有一个棘手的问题。

您可以在图像上方放置另一个div作为叠加层,并使该div响应点击和鼠标操作,并使用jQuery添加效果到图像下方的div