Vue3.x + Vite2.x 入门实战 04:不管怎么设置z-index值,元素层级仍然不对

794 阅读1分钟

编写页面布局时,必定会碰到的问题,不管怎么设置z-index值,元素都被挡住。原因:没有真正理解CSS层叠样式是啥

概要内容

  • 元素层级不对情况
  • 解决层级不对方案
  • 总结

元素层级不对情况

示例

  • html

    <section class="content">
    	<div class="modal"></div>
    </section>
    
    <div class="side-tab"></div>
    
  • css

    .content {
    		position: relative;
        z-index: 1;
    
    	.modal {
    	    position: absolute;
    	    z-index: 100;
    	}
    }
    
    .side-tab {
        position: absolute;
        z-index: 5;
    }
    

效果

  • 遮挡情况

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/69e06ea728e84f5e88515159a8c8c9c3~tplv-k3u1fbpfcp-zoom-1.image

  • 正常情况

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f89a8079e3fe4114b4dcefcefdc6416e~tplv-k3u1fbpfcp-zoom-1.image


解决层级不对方案

方案一:

  • 步骤1:遮挡元素和被遮挡元素,调整到相同父节点下

  • 步骤2:调整z-index值

  • 示例

    • html
    <section class="content">
    </section>
    
    <!-- modal 移出来放到同级, z-index 就生效了 -->
    <div class="modal"></div>
    
    <div class="side-tab"></div>
    
    • css
    .content {
    		position: relative;
        z-index: 1;
    
    	.modal {
    	    position: absolute;
    	    z-index: 100;
    	}
    }
    
    .side-tab {
        position: absolute;
        z-index: 5;
    }
    

方案二:

  • 步骤1:去掉被遮挡的父元素postion熟悉
  • 步骤2:调整z-index值
  • 示例
    • html

      <section class="content">
      	<div class="modal"></div>
      </section>
      
      <div class="side-tab"></div>
      
    • css

      .content {
      		//position: relative;
          z-index: 1;
      
      	.modal {
      	    position: absolute;
      	    z-index: 100;
      	}
      }
      
      .side-tab {
          position: absolute;
          z-index: 5;
      }
      

总结

先按元素先后顺序层叠摆放,再按z-index属性调整层级次序叠放

  • CSS是层叠样式
    • 无postion时,元素按先后顺序一层一层叠放绘制的
    • 有postion时,可通过z-index 调整同级元素的层级
    • 子元素要想突破父元素层叠限制,请删除父元素postion 属性
  • 感悟:接触CSS就应该先搞懂层叠是个啥玩意儿,不然层级问题会搞得你摸不着头脑。贴个chrome layer图(Chrome位置:More tools/layers)

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a35d2dbfc4d14665a8771d7278812390~tplv-k3u1fbpfcp-zoom-1.image

参考文献:


以上: 如发现有问题,欢迎留言指出,我及时更正