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 小时前
实现头部Sticky 粘性布局,并且点击菜单滑动到相应位置
前端·javascript·css
Irene199111 小时前
CSS 定位属性(relative、absolute、fixed、sticky)与实用技巧总结
css
我的写法有点潮15 小时前
推荐几个国外比较流行的UI库(上)
前端·javascript·css
m0_5027249517 小时前
vue动态设置背景图片后显示异常
前端·css
@Autowire17 小时前
Layout-position
前端·css
神秘的猪头18 小时前
🎨 CSS 这种“烂大街”的技术,怎么在 React 和 Vue 里玩出花来?—— 模块化 CSS 深度避坑指南
css·vue.js·react.js
3秒一个大19 小时前
模块化 CSS:解决样式污染的前端工程化方案
css·vue.js·react.js
kilito_0120 小时前
数字时钟翻页效果
javascript·css·css3
霍理迪21 小时前
CSS布局方式——弹性盒子(flex)
前端·css
研☆香1 天前
html css js文件开发规范
javascript·css·html