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 效果:

相关推荐
程序员大阳11 小时前
副队长CSS教程(33)–圆角与透明
前端·css·透明·圆角
溪语流沙16 小时前
【每天一个CSS | Day21】落地页Hero动画的分镜表
前端·css
牧艺18 小时前
SPA 也能像原生 App:View Transitions API 从原理到可上线实战
前端·javascript·css
程序员大阳20 小时前
副队长CSS教程(37)–transition 过渡
前端·css·transition·过渡
CappuccinoRose1 天前
CSS 动效基础
前端·css·动画·animation·transition
百度一下吧1 天前
CSS 伪类使用与实践:从入门到进阶
前端·css
百度一下吧1 天前
CSS3 之后新增的特性:从 CSS4 到现代 CSS 的演进
前端·css·css3
tryCbest1 天前
第二篇:CSS3 全部知识点全解 + 项目样式实现
前端·css·css3
程序员大阳1 天前
副队长CSS教程(36)–移动布局与响应式
前端·css·响应式·媒体查询·移动布局
程序员大阳1 天前
副队长CSS教程(38)–transform 变换
前端·css·变换·transform