当嵌套
CSS 解决方案
在不使用 JavaScript 的情况下实现此行为需要巧妙的解决方法使用兄弟元素。
<code class="css">.parent { width: 100px; height: 100px; padding: 50px; background: lightgray; } .parent:hover { background: lightblue; } .child { height: 100px; width: 100px; background: darkgray; } .child:hover { background: lightblue; } .sibling { position: relative; width: 100px; height: 100px; padding: 50px; top: -50px; left: -50px; background: #3D6AA2; transition: background-color 1s; } .sibling:hover { background: #FFF; }</code>
<code class="html"><div class="parent"> <div class="sibling"></div> <div class="child"></div> </div></code>
兄弟元素技巧
兄弟元素绝对定位在父元素内,并与父元素和子元素重叠元素。它超出了父元素的范围,可以有效捕获所有不专门针对子元素的悬停事件。
当兄弟元素悬停时,其背景颜色变为白色,从而在视觉上消除父元素的悬停效果。当子元素悬停时,其自身的悬停效果仍然存在,但白色同级元素隐藏了父元素的悬停效果。
近期进展
请注意 :has( ) 选择器现在存在,可以根据特定后代的存在直接定位父元素。这种方法可以用来更优雅地实现所需的行为。
<code class="css">.parent:has(.child:hover) { background: lightgray !important; }</code>
以上是将鼠标悬停在子元素上时如何暂停父元素悬停效果?的详细内容。更多信息请关注PHP中文网其他相关文章!