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

相关推荐
Demoncode_y13 小时前
前端布局入门:flex、grid 及其他常用布局
前端·css·布局·flex·grid
CoderYanger19 小时前
前端基础——HTML练习项目:填写简历信息
前端·css·职场和发展·html
软件技术NINI19 小时前
html css js网页制作成品——饮料官网html+css+js 4页网页设计(4页)附源码
javascript·css·html
软件技术NINI19 小时前
html css js网页制作成品——HTML+CSS辣条俱乐部网页设计(5页)附源码
javascript·css·html
金梦人生1 天前
Css性能优化
前端·css
写代码的皮筏艇1 天前
CSS属性继承与特殊值
前端·css
我有一棵树1 天前
使用Flex布局实现多行多列,每个列宽度相同
前端·css·html·scss·flex
Light601 天前
像素退场,曲线登场:现代响应式 CSS 全家桶 | 领码课堂
前端·css·响应式设计·css函数·布局系统·相对单位·设计令牌
速易达网络2 天前
Vue3 原生移动应用开发来了
前端·javascript·css
用户458203153172 天前
CSS 层叠层 (@layer) 详解:控制样式优先级新方式
前端·css