我在canvas标签上有一个div position:absolute
。 div使用悬停伪类来设置overflow:visible
以创建简单的弹出类型效果。在Chrome中,这很好用。在IE10中,只有当我将鼠标悬停在div中的元素上或者我给div background-color
时,才会激活悬停伪类。
感谢任何帮助!
答案 0 :(得分:4)
看起来可以通过使用透明png作为背景图像来修复。
编辑:抱歉,应该对此进行更多扩展。即,如果在具有透明背景颜色的元素上使用:hover
的伪类,则只有当鼠标位于实心/不透明点上时才会触发悬停。这通常不是问题,除非你做这样的事情:
<style>
#content {
height:20px;
overflow:hidden;
position:absolute;
width:100px;
}
#content:hover {
height:100px;
overflow:visible;
}
#hoverContent {
position:absolute;
top:20px;
}
</style>
<div id="content">
<div style="float:left;">wtf</div>
<div style="float:right;">hrm</div>
<div id="hoverContent">lol</div>
</div>
即如果你将鼠标悬停在#content
上,只有当鼠标超过'wtf'或'hrm'时才会看到溢出内容。如果你将'wtf'和'hrm'字样悬停在BETWEEN之间,你会期望悬停样式也会被应用,因为它是#content
的一部分,但你错了。
要解决此问题,您可以将背景颜色或图像应用于#content
。
答案 1 :(得分:1)
更好的解决方案是使用透明背景颜色而不是图像:
background:rgba(0,0,0,0);
IE10将rgba()视为纯色。
答案 2 :(得分:1)
另一种可能性是使用内联svg作为背景img。你只需要svg元素,背景为1x1 - 没有颜色。
缺点 - IE8不支持svg
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg+xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22+width%3D%221%22+height%3D%221%22+viewBox%3D%220+0+1+1%22%3E%3Ctitle%3Etransparent+bcg%3C%2Ftitle%3E%3C%2Fsvg%3E");
background-repeat: repeat;
示例已经编码为svg,适用于所有浏览器