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

     
  • 相关阅读:
    H50062:meta 定义浏览器的渲染方式
    PHPJN0004:PHP文件上传被安全狗拦截处理
    APP0006- 提示弹窗
    MySQL0002:命令行操作数据库常用命令
    APP0005- data属性的定义
    CSS0018: 字体超长自动隐藏
    JS_0041:JS加载JS文件 异步同步加载js文件
    CSS0017: DIV 上下左右都居中样式
    CSS0016: 多个DIV并排均匀分布 box-sizing
    H50061:html 中引入外部 html 片段
  • 原文地址:https://www.cnblogs.com/jkfeng/p/12974840.html
Copyright © 2011-2022 走看看