CSS 新特性中的层叠上下文及影响
Jan 26, 2018
CSS中层叠上下文
形成条件:
- 根元素 (
HTML) z-index值不为auto的绝对/相对定位- 一个
z-index值不为auto的Flex项目(flex item) position: fixedopacity属性值小于1transform属性值不为nonemix-blend-mode性值不为normalfilter值不为nonewill-change中指定了任意 CSS 属性mix-blend-mode属性值不为normal-webkit-overflow-scrolling属性被设置touch
总结:
- 给一个 HTML 元素定位和
z-index赋值创建一个层叠上下文。 - 层叠上下文可以包含在其他层叠上下文中,并且一起创建一个有层级的层叠上下文。
- 每个层叠上下文完全独立于它的兄弟元素:当处理层叠时只考虑子元素。
- 每个层叠上下文是自包含的:当元素的内容发生层叠后,整个该元素将会在父层叠上下文中按顺序进行层叠。
内容来自: 层叠上下文
对普通元素的影响
- 提升元素的层叠顺序
- 限制
position: fixed的跟随效果 - 改变
overflow对absolute元素的限制 - 限制
absolute元素的100%宽度大小 - 进行变换时造成变换元素的父元素闪烁
Check which CSS3 features the browser recognizes 是我制作的一个简单 Demo,用于展示 CSS 新特性是如何提升元素的层叠顺序的。
解决方案
1 | <div class="parent"> |
1 | /* 显式设置父元素的层叠顺序 */ |