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

相关推荐
少年阿闯~~3 小时前
CSS——实现盒子在页面居中
前端·css·html
折翼的恶魔9 小时前
前端学习之CSS
前端·css·学习
鸡吃丸子9 小时前
Tailwind CSS 入门指南
前端·css
摆烂且佛系12 小时前
CSS元素的总宽度计算规则
前端·css
卷Java1 天前
CSS模板语法修复总结
java·前端·css·数据库·微信小程序·uni-app·springboot
proud12121 天前
开源的 CSS 动画库
前端·css·开源
Filotimo_1 天前
2.CSS3.(1).html
前端·css
华仔啊1 天前
Vue+CSS 做出的LED时钟太酷了!还能倒计时,代码全开源
前端·css·vue.js
吃饺子不吃馅1 天前
AntV X6 核心插件帮你飞速创建画布
前端·css·svg
爱吃甜品的糯米团子1 天前
CSS图片背景属性
前端·css