1.MDN中对于fixed
定位的解释:不为元素预留空间,而是通过指定元素相对于屏幕视口(viewport)的位置来指定元素位置。元素的位置在屏幕滚动时不会改变。打印时,元素会出现在的每页的固定位置。fixed 属性会创建新的层叠上下文。当元素祖先的 transform 属性非 none 时,容器由视口改为该祖先。
2.所以,MDN 关于 position:fixed 的补充描述不够完善。下述 4 种方式目前都会使得 position:fixed 定位的基准元素改变(本文重点):
- transform 属性值不为 none 的元素
- 设置了 transform-style: preserve-3d 的元素
- perspective 值不为 none 的元素
- 在 will-change 中指定了任意 CSS 属性