CSS - 子元素 hover 鼠标悬浮时避免触发父元素的 hover 效果

场景复现

html 复制代码
<style>
.cover:hover {
  background: yellow;
}
</style>

<div class="size-20 bg-black cover">
  <div class="size-10 bg-blue cover"></div>
</div>

如上代码当子元素 hover 时会同时触发父元素的 hover 效果,如下所示:

解决方案

html 复制代码
<style>
.cover:hover:not(:has(.cover:hover)) {
  background: yellow;
}
</style>

<div class="size-20 bg-black cover">
  <div class="size-10 bg-blue cover"></div>
</div>

使用 :not :has 伪类选择器控制即可,如下所示,当子元素 hover 状态下不会同时触发父元素的 hover 效果:

相关推荐
阿虎儿10 小时前
CSS 毛玻璃效果完全指南:从入门到避坑
css
清风细雨_林木木13 小时前
CSS 报错:css-semicolonexpected 解决方案
前端·css
熙街丶一人13 小时前
css 图片未加载时默认高度,加载后随图片高度
前端·javascript·css
洗发水很好用17 小时前
uniapp纯css实现基础多选组件
前端·css·uni-app
whuhewei18 小时前
CSS动画倍速播放
前端·css
ZTLJQ19 小时前
构建网页的三剑客:HTML, CSS, JavaScript 完全解析
javascript·css·html
苏武难飞19 小时前
分享一个THREE.JS中无限滚动的技巧
前端·javascript·css
橘子编程19 小时前
HTML5 权威指南:从入门到精通
前端·css·vue.js·html·html5
cch891819 小时前
常见布局实现详解(Flex 实战版)
前端·javascript·css
勇往直前plus1 天前
前端三基石:从后端视角理解 HTML、CSS 与 JavaScript
前端·css·html