我将鼠标悬停在另一个div上时出现。
然而,当我尝试将鼠标移动到出现的div上时,它会闪烁。 我理解这是因为我的CSS而发生,但无法弄清楚我应该做些什么来纠正。
以下是http://jsfiddle.net/jmoore91/gf4fwyf2/
的示例我的代码:
HTML
<div class='hoverbase'>
<a href=http://www.google.com.au>
<img src='http://images2.layoutsparks.com/1/242775/fairy-funky-abstract-image.jpg'/></a>
<div class='hovertop'>
<a href=http://google.com.au><h2>Project HA</h2></a>
</div>
</div>
CSS
.hoverbase {
width: 300px;
height: 300px;
position: relative;
}
.hovertop {
height: 200px;
width: 200px;
border: 2px solid red;
background-color: white;
position: absolute;
top: 50px;
left: 50px;
margin: auto;
visibility: hidden;
}
.hoverbase a:hover + .hovertop {
visibility:visible;
}
谢谢
詹姆斯
答案 0 :(得分:2)
你似乎意识到,.hovertop
因为悬停和不悬停之间的快速交替而闪烁。当.hovertop
可见并且鼠标悬停在:hover
上时,.hoverbase
的{{1}}操作将被取消,.hovertop
消失。此时,.hovertop
不再覆盖.hoverbase
,并且:hover
操作已恢复。只要您的鼠标超过.hovertop
,这种交替就会很快发生并永久重复,从而导致闪烁效果。
在.hovertop
州选择器中加入:hover
。这样,无论鼠标是.hoverbase
还是.hovertop
,它都会保持可见。
.hoverbase a:hover + .hovertop,
.hovertop:hover { /* << added this */
visibility:visible;
}
在英语中,这意味着:如果鼠标位于.hoverbase
或.hovertop
之上,请显示.hovertop
。
工作示例:
.hoverbase {
width: 300px;
height: 300px;
position: relative;
}
.hovertop {
height: 200px;
width: 200px;
border: 2px solid red;
background-color: white;
position: absolute;
top: 50px;
left: 50px;
margin: auto;
visibility: hidden;
}
.hoverbase a:hover+.hovertop,
.hovertop:hover {
visibility: visible;
}
&#13;
<div class='hoverbase'>
<a href=http://www.google.com.au>
<img src='//via.placeholder.com/350x150' /></a>
<div class='hovertop'>
<a href=http://google.com.au>
<h2>Project HA</h2>
</a>
</div>
</div>
&#13;