transform 对其他元素渲染的副作用有
- transform 的元素会影响overflow area (溢出区域)。也就是说,使用transform使得元素移出了父元素之外的话,在父元素上使用overflow: scroll和overflow:auto的情况下,父元素将会展示出滚动条。
- transform 的元素会创造一个stack context (层叠上下文),造成内部和外部的z-index相互独立。
- transform 的元素将会创建一个 containing block (包含块),所有的position为absolute和fixed的子元素、以及设置了background-attachment的背景将会相对于该元素的 padding box 布局。
第三条即造成fixed失效的原因;是由于transform元素创建了一个Containing Block —— 它是元素渲染的一个基本概念,会影响元素的布局。
原因:position为absolute或fixed,包含块可能有满足以下条件的最近父级元素的内边距的边缘组成:
- transform或perspective不为none;
- filter不为none;
- will-change为transform或perspective;
- contain为paint;
Containing Block
参考一下关于containing block的确定,可以看到定位属性为fixed或者absolute的元素都会受到transform包含块影响。

本文探讨了transform元素如何影响元素渲染,包括导致overflow区域的变化、创建独立的层叠上下文以及对absolute/fixed定位的影响。重点讲解了transform元素如何通过创建containing block影响其他定位属性,以及其在fixed定位失效中的作用。
2041

被折叠的 条评论
为什么被折叠?



