zoukankan      html  css  js  c++  java
  • z-index之深入理解

    z-index之深入理解

    此文为张鑫旭老师CSS深入了解系列课程的学习笔记,观看张老师的教学视频收益匪浅。

    传送门http://www.imooc.com/u/197450/courses?sort=publish


     

    特性:

    1. 可以为负值

    2. 支持CSS3 animation动画

    3. CSS2.1时代,需要和定位元素配合使用

     

    原则:

    1. 后来居上

    2. 大值居上

    3. 祖先优先(z-index是负值不是auto

     

    层叠上下文的特征:

    1. 层叠上下文可以嵌套,组成一个分层次的层叠上下文

    2. 每个层叠上下文和兄弟元素独立:当进行层叠变化或渲染的时候,只需要考虑后代元素

    3. 每个层叠上下文是自成体系的:当元素的内容被层叠后,整个元素被认为是在父层的层叠顺序中,不影响父层的层叠顺序

     

    七阶层叠水平

     

     

    Z-index和层叠上下文

    1. 定位元素默认为z-indexauto可以看成是z-index:0

    2. Z-index不为auto的定位元素会创建层叠上下文

    3. Z-index层叠顺序的比较止步于父级层叠上下文

     

    其他参与层叠上下文的元素:

     

    1. Z-index值不为autoflex项(父元素display:flex|inline-flex

     

    .box { display: flex; } .box > div { z-index: 1; } 配合使用

     

    2. 元素的opacity值不是1

     

     

    3. 元素的transform值不是none

     

     

    4. 元素的mix-blend-mode值不是normal

     

     

    5. 元素的filter值不是none

     

    6. 元素的isolation值是isolate

     

     

    7. Position:fixed声明(Chromeblink/webkit内核浏览器)

     

    8. Wiil-change指定的属性值为上面任意一个

     

    9. 元素的-webkit-overflow-scrolling设为touch

     

    z-index实际使用:

    1. 最小化影响原则

    2. 不犯二原则

    原因:多人协作以及后期维护

      对于非浮层元素,避免使用z-index值,z-index值没有任何理由超过2

     

    3. 组件层级计数器方法

    目的:避免浮动组件因z-index被覆盖的问题

    原因:

    1.总会遇到意想不到的高层级元素

    2.组件的覆盖规则具有动态性

    做法:通过JS获取body元素下子元素的最大z-indexmax,将浮动组件的z-index设为max+1

     

    4. 可访问性隐藏

     

    1) 将按钮的z-index设为-1

    2) 设置按钮属性position:absolute; left:-99999px; top:-999999px;

    3) 将按钮的display设为none

     
  • 相关阅读:
    Java vs Python
    Compiled Language vs Scripting Language
    445. Add Two Numbers II
    213. House Robber II
    198. House Robber
    276. Paint Fence
    77. Combinations
    54. Spiral Matrix
    82. Remove Duplicates from Sorted List II
    80. Remove Duplicates from Sorted Array II
  • 原文地址:https://www.cnblogs.com/jkfeng/p/12974840.html
Copyright © 2011-2022 走看看