当 时,我在将鼠标悬停在项目上时遇到了一些问题opacity: 0;
,但是因为它们仍然存在于空间中(只是不可见),与 不同display: none;
,任何附加到该对象的悬停事件仍然会发生。
无法真正发布我正在使用的代码,但我已经设置了一个小提琴,并提供了更多解释来模拟它。就像一个注释,我宁愿不使用任何 Javascript 来解决它,尽量保持纯 HTML/CSS。我还从下面的小提琴中发布了 HTML 和 CSS:
HTML:
<div class="container">
<div class="secondary-container">
.opacity-0 fills this box.
<div class="opacity-0"></div>
<div class="on-hover">Hello, world!</div>
</div>
</div>
CSS:
body {
font-family: sans-serif;
}
.container {
width: 200px;
height: 200px;
background-color: blue;
}
.container .secondary-container {
width: 100px;
height: 100px;
margin: 0 auto;
background-color: white;
padding: 5px;
box-sizing: border-box;
}
.container .secondary-container .opacity-0 {
width: 100px;
height: 100px;
background-color: red;
margin-top: -41px;
margin-left: -5px;
opacity: 0;
}
.on-hover {
display: none;
color: white;
}
.container .secondary-container .opacity-0:hover ~ .on-hover {
display: block;
}
以及解释:
将鼠标悬停在白色方块上,显示“Hello, world!”文字 应该显示(来自 div.on-hover)。但是,正如 CSS 中明确指出的那样,您实际上是在 .opacity-0 上悬停。
我需要能够将鼠标悬停在 .opacity-0 上,并且当不透明度为 0 时(即对象不可见,但仍存在于空间中),悬停事件不会触发。当不透明度为 1 并且您将鼠标悬停在 .opacity-0 上时,悬停事件会照常进行。最好不要使用 Javascript。
希望一切都有意义,很高兴回答有关它的任何问题,因为我意识到我可能没有很好地解释这一点。
感谢您的任何帮助 :)