什么是CSS层叠上下文,它们是如何工作的?_html/css_WEB-ITnose
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了什么是CSS层叠上下文,它们是如何工作的?_html/css_WEB-ITnose,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2367字,纯文字阅读大概需要4分钟。
内容图文
![什么是CSS层叠上下文,它们是如何工作的?_html/css_WEB-ITnose](/upload/InfoBanner/zyjiaocheng/408/8e36bac49fb445cda6a3a3512a0f6ddf.jpg)
没有冒犯 Philip 的意思。就像我说过的:层叠上下文很棘手。
那什么是层叠上下文呢?层叠上下文就是一个包含了一组堆叠层的元素。这可以是一个 html 元素创建的根层叠上下文,或者是一个由特定属性和值创建的局部层叠上下文。
“包含一堆层”是一个很奇怪的短语,但这是一个简单的概念。在一个局部层叠上下文中,子元素的z-index 会根据其父元素来设置而不是文档的根元素。在该上下文以外的层(例如:一个局域层叠上下文的相邻同级元素)不能位于其内部层之间。
这儿是一个例子。使用切换按钮来为 A 元素触发或者取消一个局域层叠上下文。
在这个例子中,#a p 元素(A的子元素) 的z-index为1 ,#a 元素和 #b 元素的z-index值为auto 。因为 #a p 元素的 z-index 属性值为正数,所以在根层叠上下文内该元素位于 #a 元素和 #b 元素之上。
然而把 #a 元素的 transform 属性值由 none 改为 scale(1) 会触发一个局域层叠上下文。现在 #a p 元素的 z-index 值会根据 #a 元素来计算而不是文档的根元素。
无论是根层叠上下文还是局域层叠上下文都会遵循一系列的规则来确定元素的堆叠和绘制顺序,一个层叠上下文的子元素会按照从下到上的顺序绘制。
1. 堆叠层级为负数的元素,通常为 z-index:-1 的元素 。2. position 属性值为 static 的元素。3. 堆叠层级为 0 的元素,通常为 z-index:auto 的元素。4. 堆叠层级为正数的元素,例如 z-index 属性值为 1 或者更大的元素。
如果两个元素有相同的堆叠层级,就按照它们在源文件中出现的顺序层叠。后继元素堆叠在前驱元素之上。
少数的 CSS 属性和值会触发一个新的层叠上下文。它们包含: opacity 属性,当它的属性值小于 1 时(例如:.99);filter 属性,当它的属性值不为 none 时;CSS 混合模式属性 mix-blend-mode, 当它的属性值不为 normal 时。
和你猜想的一样,transform 属性能够触发一个层叠上下文,但是仅当它的属性值不为 none 时。这包含了身份转换[1] ,例如属性值为 scale(1) 和 translate3d(0,0,0) 。
在上述例子中,#a 元素和 #b 元素拥有相同的堆叠层级,但是 #b 元素是源文件中的第二个元素。当 transform: scale(1) 被应用时, #a p 变为包含在 #a 元素的局部上下文中。结果是,#b 元素上升到了堆栈的最上面。
[1] 身份转换对元素没有视觉上的影响,但是会触发一个新的层叠上下文。
关于作者:Eric.M.Y.H
前端攻城狮,曾游学于大英及大印度斯坦,学习CS课程,略懂自然语言处理 个人主页 · 我的文章 · 17 ·
内容总结
以上是互联网集市为您收集整理的什么是CSS层叠上下文,它们是如何工作的?_html/css_WEB-ITnose全部内容,希望文章能够帮你解决什么是CSS层叠上下文,它们是如何工作的?_html/css_WEB-ITnose所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。