我有一个位于div元素内的图像,当鼠标经过它时,这个div元素会改变它的一些样式属性,使用CSS:hover伪类。这适用于所有浏览器。但div元素还有另一个类:active,它应该在单击时更改其背景颜色。
这是事情开始破裂的时候。在IE9(我安装的版本)中,当我点击图像时,div的背景颜色不会改变。只有当我点击div上的其他地方时,它才有效,颜色会发生变化。在Firefox中,无论我在div元素中单击的位置,即使单击图像,背景颜色也会发生变化。这就是我希望IE的行为方式,所以当usem点击div时,无论在哪里,都会触发:active效果。
是否有可用的解决方法或其他方法使其适用于IE?
答案 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 mouseup和mousedown。
答案 1 :(得分:0)
这个问题有一个棘手的问题。
您可以在图像上方放置另一个div作为叠加层,并使该div响应点击和鼠标操作,并使用jQuery添加效果到图像下方的div