我有一个图像,位于一个 div 元素中,当鼠标经过它时,这个 div 元素使用 CSS :hover 伪类改变了它的一些样式属性。这在所有浏览器中都可以正常工作。但是 div 元素还有另一个类 :active,它应该在单击时更改其背景颜色。
这是事情开始破裂的时候。在IE9(我安装的版本)中,当我点击图片时,div的背景颜色没有改变。只有当我点击 div 的其他地方时,它才会起作用,颜色会改变。在 Firefox 中,无论我在 div 元素中的哪个位置单击,背景颜色都会改变,即使我单击图像也是如此。这也是我希望 IE 的行为方式,因此当用户单击 div 时,无论在其中的哪个位置,都会触发 :active 效果。
是否有解决方法或我可以用来使其适用于 IE 的东西?
最佳答案
在 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 .
关于css - div 元素中的图像不处理 CSS 事件伪类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6411250/