码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【CSS】问题:为什么我的z-index不起作用


    这篇文章也可以在我的博客中阅读。

    问题描述

    我设置了z-index: 99999,但是它不起作用涅。

    问题原因

    1. 当元素position为static(默认值)时,z-index将被忽略。
    2. z-index需要各元素位于同一堆栈上下文(Stacking Context)。而且z-index是原子性的,也就是在“子”上下文中的设置并不会对“父”上下文有任何影响。

    如果已经设置了position,那出问题大概率是因为上下文不一。

    解决办法

    设置Position

    若没设置z-index的元素position,设置为relative

    统一堆栈上下文

    若是在多层嵌套的环境下,非常容易不经意之间创建堆栈上下文,而我们要做的则是确保元素位于同一上下文。换句话说,就是不能让其中的容器元素产生堆栈上下文。

    废话!但是具体要怎么做啊?

    手动判断

    首先需要知道,何时会产生堆栈上下文,在Mozilla文档中有详细的描述,此处不展开讨论。

    主要的做法为:

    • container不能是根元素
    • 对每级container,确保不产生堆栈上下文
      • 重点关注:position、z-index、opacity和isolation这几个经常导致产生上下文的属性

    以下是一个跨层级设置z-index的例子:

    #overlapper, #child1, #child2 {
      position: relative;
      padding: 30px;
      height: 20px;
    }
    #overlapper {
      z-index: 3;
      background: red;
      top: 60px;
      margin-left: 20px;
    }
    #container {
      margin-top: -40px;
    }
    #child1 {
      z-index: 2;
      background: green;
      top: -40px;
    }
    #child2 {
      z-index: 4;
      background: blue;
      margin-left: 40px;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    <div id="overlapper">Overlapperdiv>
    <div id="container">
        <div id="child1">Child 1div>
        <div id="child2">Child 2div>
    div>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    插件辅助

    然而并没有什么暖用。
    我盯着这坨屎山看了30分钟,没发现哪里不妥,然后萌生偷鸡念头:
    这种东西就应该用计算机来处理啊!!!

    于是我找到了这个在Chrome F12控制台中显示z-index的拓展程序

    然后……很好,2分钟就找到原因了。
    干这种事还是不要企图用人的猪脑代替计算机了。

    参考资料

    z-index not working with fixed positioning
    Z-Index with different parents

  • 相关阅读:
    HTML如何制作公司网站首页(web前端期末大作业)
    【短信验证】手机登录短信验证
    PlantUml 思维导图学习
    MySQL里为什么会建议不要使用SELECT ?
    springboot 整合 nacos 作为注册中心
    淘宝详情api(获取主图)2023年11月20日最新版本
    AndroidStudio编译错误‘android.injected.build.density‘ is deprecated
    Echarts柱状图格式化Label加单位
    第一季:7Spring Bean的作用域之间有什么区别【Java面试题】
    【Ansible自动化运维实战】使用Ansible部署WordPress应用
  • 原文地址:https://blog.csdn.net/mkr67n/article/details/127594852
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号