css堆叠-堆叠上下文(转载)

2023-08-29 0 7,099 百度已收录

本文在介绍堆叠上下文之前尝试解释一下堆叠顺序是什么。

MDN 是这样解释堆栈上下文的:

级联上下文是 HTML 元素的三维概念,它在相对于面向(笔记本屏幕)窗口或网页的用户的假想 z 轴上延伸。 HTML元素根据自己的属性按优先级顺序占据级联上下文空间。

通常我们浏览网页时,我们可以理解为从网页的正面查看。 在理解堆叠上下文时,我们尝试从侧面来理解。 方方老师说CSS一个非常重要的学习方法就是实验方法。 本文力图使所有的推论都有实验依据。 (您好,希望您可以跳过重播……)

css堆叠-堆叠上下文(转载)

首先我们来思考一下边框和背景的关系:


  
.demo{ width: 100px; height: 100px; border: 10px solid rgba(255,0,0,0.5); background: green; }

功效图:

css堆叠-堆叠上下文(转载)

可见,背景<border;接着css堆叠,我们在父元素里加一个div,观察一下border和子元素div的关系:


  
.parent{ width: 100px; height: 100px; border: 10px solid red; } .child{ width: 30px; height: 30px; background: blue; margin-left: -5px; }

css堆叠-堆叠上下文(转载)

功效:

由此可以得出,borderdiv==>浮动元素==>内联元素==>定位元素==>z-index>0,以上8层。

css堆叠-堆叠上下文(转载)

如果我们将position:relative设置为z-index:-1的父元素,我们会发现子元素中z-index:-1的元素已经被移动到了背景和div的下面。

.parent{ width: 100px; height: 100px; border: 10px solid red; position: relative; background: rgba(0,255,0,0.5); z-index: 0; } .child{ width: 40px; height: 40px; background: rgba(30,30,230,0.5); } .relative{ width: 30px; height: 30px; background: orange; position: absolute; left: 30px; top: 10px; z-index: -1; } .absolute{ width: 40px; height: 40px; background: black; position: absolute; }

功效:

这是为什么呢css堆叠,我们只是从引入堆叠顺序过渡到了堆叠上下文的概念吧? 。 。

由于position:relative和z-index不会为auto生成堆栈上下文,因此relative类的元素应该位于parent生成的堆栈上下文之上。

mdn上列出了几种生成stacking context的情况:

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 css css堆叠-堆叠上下文(转载) https://www.wkzy.net/game/183186.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务