z-index相关

  • 如果不考虑css3,只有定位元素的z-index才有作用。
  • 如果定位元素z-index没有发生嵌套:1、后来居上的准则(dom流先后顺序);2、哪个大,哪个上。
  • 如果定位元素发生了嵌套,则为祖先优先原则。前提:z-index是数值,非auto
    css2.1:(z-index:auto)当前层叠上下文的生成盒子层叠上下文是0.盒子(除非是根元素)不会创建新的层叠上下文。
Paste_Image.png

层叠上下文、层叠水平和层叠顺序的概念

  • 层叠上下文(stacking context):是HTML元素中的一个三维概念,表示元素在z轴上有了“可以高人一等”。
    1、页面根元素天生具有层叠上下文,称之为“根元素层叠上下文”
    2、z-index值为数值的定位元素也具有层叠上下文。
    3、其他属性。。。。
Paste_Image.png
  • 层叠上下文的特性:
    1、可以嵌套,组合成一个分层次的层叠上下文。
    2、每个层叠上下文和兄弟元素独立:当进行层叠变化或渲染的时候,只需要考虑后代元素。
    3、每个层叠上下文是自成体系的:当元素的内容被层叠后,整个元素被认为是在父层的层叠顺序中。

  • 层叠水平(stacking level):层叠上下文中的每一个元素都有一个层叠水平,决定了同一个层叠上下文中元素在z轴上的显示顺序。遵循“后来居上”和“谁大谁上”的层叠准则。
    层叠水平和z-index不是一个东西,普通元素也有层叠水平。

  • 层叠顺序(stacking order):元素发生层叠时候有着特定的垂直显示顺序。意义是规范元素重叠时候的呈现规则

Paste_Image.png
  • 三个要点:
    1、定位元素默认z-index:auto可以看成是z-index:0;
    2、z-index不为auto的定位元素会创建层叠上下文;
    3、z-index层叠顺序的比较止步于父级层叠上下文。

  • 非定位元素的层叠上下文
    1、不支持z-index的层叠上下文元素的层叠顺序均是z-index:auto级别
    2、依赖z-index的层叠上下文元素的层叠顺序取决于z-index值

  • 经验:
    1、对于非浮层元素,避免设置z-index值,z-index值没有任何道理需要超过2---不犯二准则。
    2、采用组件层级计算器方式设置层级:通过js获得body下子元素的最大z-index值+1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,680评论 1 92
  • 1.z-index基础 z-index属性指定了元素及其子元素的[z顺序],而[z顺序]可以决定当元素发生覆盖的时...
    徐国军_plus阅读 11,503评论 1 6
  • z-index 与 css 定位属性 z-index 只对定位元素有作用。 如果定位元素z-index没有发生嵌套...
    soojade阅读 4,472评论 0 2
  • 第一节:z-index基础 较大的z-index会覆盖较小的那个z-index元素 z-index:auto 默认...
    胖鱼尾巴阅读 4,668评论 0 0
  • 上班间隙,长期对着电脑的眼睛需要缓解下,我站在窗台边看着外面的绿树深呼吸,跟坐在一旁的清洁阿姨唠嗑起来,我简单的问...
    梁佳儿阅读 2,224评论 0 1