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

相关推荐
Mh14 小时前
鼠标跟随倾斜动效
前端·css·vue.js
CyrusCJA21 小时前
毛玻璃效果
前端·css·css3
huangql5201 天前
CSS布局(五):Flex——让布局更灵活
前端·css
lemon_yyds1 天前
Element UI 实践踩坑- date-picker 组件 定制化type="daterange"
前端·css
布局呆星1 天前
Vue3 笔记:过渡动画与自定义指令
javascript·css·vue.js·python·es6·html5
qq4356947011 天前
JavaWeb03
前端·css·html
慕斯fuafua1 天前
CSS——弹性盒子
前端·css
huangql5201 天前
CSS布局 (三):浮动——从文字环绕到多列布局
前端·javascript·css
小赵同学WoW2 天前
CSS作用域穿透选择器
前端·css
逆光如雪2 天前
移动端border-left 和 width:1px,同样写1px为什么粗细不同?
前端·css