当前位置: 首页 > article >正文

【CSS】opacity 影响 z-index 不生效

准备知识

一般来说,z-index 不生效的原因有:

  1. 父元素的 position 属性:
    z-index 只对 position 属性为 relative、absolute 或 fixed 的元素有效。

  2. 其他元素的 z-index:
    如果页面中有其他元素也设置了较高的 z-index,可能会覆盖你的 .app 元素。

  3. CSS 特性:
    z-index 的效果可能受到 CSS 特性的影响,例如 transform、opacity 等。
    确保没有其他 CSS 特性干扰 z-index 的效果。

我的项目中就是由于第三点,opacity 影响了 z-index ,导致 z-index 不生效。

在这里插入图片描述

我的某个元素同时具有 link 和 download 选择器,代码如下:

.link {
  display: inline-block;
  margin-right: 10px;
  color: $bgGrayColor;
  font-size: $fontSize12;
  line-height: 14px;
  padding: 0 14px;
  // 字体变暗
  opacity: 0.8;  // 该 属性 导致 z-index 不生效
  // 去掉默认样式
  text-decoration: none;
}

.download {
  //局部的相对定位使用 子绝父相
  position: relative;

  .app {
    display: none;
    position: absolute;
    top: 25px;
    left: 0;
    padding: 8px;
    box-shadow: 0 4px 8px 0 rgb(0 0 0 / 10%);
    z-index: 10000;  // 不生效

    .ecode {
      width: 140px;
      height: 140px;
    }

    .name {
      color: #000;
      margin-top: 2px;
    }
  }
}

解决方法

  • 将 opacity 应用到子元素:将 opacity 应用到 .app 的子元素而不是 .app 本身,这样不会影响 .app 的堆叠上下文。
  • 或者 去除 opacity

在这里插入图片描述

原因分析

  • 当一个元素的 opacity 小于 1 时,它会创建一个新的堆叠上下文(stacking context),这可能会导致 z-index 无法按预期工作。

在这里插入图片描述


http://www.kler.cn/a/394248.html

相关文章:

  • 圣诞节文化交流会在洛杉矶成功举办
  • Fuel库实战:下载失败时的异常处理策略
  • C++ Eigen常见的高级用法 [学习笔记]
  • iClient3D for Cesium在Vue中快速实现场景卷帘
  • CSS系列(27)- 图形与滤镜详解
  • Docker 设置代理的三种方法(2024年12月19日亲自测试)
  • 【Java语言】String类
  • Spring源码(十二):Spring MVC之Spring Boot
  • PPT技巧:如何合并PPT文件?
  • SpringBoot+MyBatis+MySQL的Point实现范围查找
  • MATLAB用CNN-LSTM神经网络的语音情感分类深度学习研究
  • [DDNS][SSL][HTTPS]阿里云ACME Ubuntu22.04Server 安装教程
  • Mysql每日一题(行程与用户,困难※)
  • Vue3 项目权限控制最佳实践
  • 消息队列系列一:RabbitMQ入门讲解
  • git 提交报错 Error updating changes: bad signature 0x00000000index file corrupt
  • STM32编程遇到的问题随笔【一】
  • 深入探索React合成事件(SyntheticEvent):跨浏览器的事件处理利器
  • Windowos系统部署mino
  • Spring Boot应用开发实战:构建高效、可维护的Web应用
  • linux startup.sh shutdown.sh (kkFileView)
  • HBase理论_HBase架构组件介绍
  • IEC61850服务分类说明
  • SpringBoot 3.3.5 试用CRaC,启动速度提升3到10倍
  • 【学习率】
  • 时间序列分析——移动平均法、指数平滑法、逐步回归法、趋势外推法等(基于Python实现)