我试图这样做,但是如本demonstration所示,它似乎不起作用。
CSS代码:
div {
background-color: yellow;
padding: 20px;
display: block;
}
div:hover {
display: none;
}
所以我们必须使用javascript吗?
答案 0 :(得分:4)
您可以使用opacity:0;
代替display:none;
。
<!DOCTYPE html>
<html>
<head>
<style>
div {
background-color: yellow;
padding: 20px;
display: block;
}
div:hover {
opacity: 0;
}
</style>
</head>
<body>
<span>Hover over me!</span>
<div>I will show on hover</div>
</body>
</html>
答案 1 :(得分:1)
是的。 CSS非常严格,您必须首先了解父子关系。
进行设置,以便将鼠标悬停在父级上时会隐藏子级。 操作方式:如果隐藏该元素,您将不再将鼠标悬停在该元素上,因此它会重新出现,并且CSS无法决定要做什么。
另一个注意事项:在这种情况下,如果您使用display: none
,它仍然会停滞,因为它将改变父级的大小。我用visibility: hidden
来解决这个问题。
https://www.w3schools.com/code/tryit.asp?filename=FVART8OA0CWY
.hide_hover:hover span{ visibility: hidden; }
意味着具有span
类父级的hide_hover
会在父级悬停时隐藏。