fixed 定位失效 与 CSS 层叠上下文

本文探讨了CSS中position: fixed定位失效的问题,深入解析了层叠上下文(Stacking Context)的概念。当元素的父元素具有transform或opacity非none值时,fixed定位会相对于该父元素而非视口定位。同时,文章介绍了创建层叠上下文的条件,以及在不同浏览器内核下,层叠上下文如何影响fixed定位效果。
摘要由CSDN通过智能技术生成

第一部分,position: fixed失效的问题;
第二部分,了解一下由此扯出的一个Stacking Context层叠上下文。
文中大部分内容来自于我对W3C文档及一些英文资料的理解,如有不明确或表述不准确的地方还请指出。

fixed 定位与 CSS 层叠上下文的关系

关于 position: fixed

position: fixed 在日常布局中比较常用,如移动端头部和底部导航定位、模态框、悬浮按钮等,设置了这个属性值得元素会相对于屏幕视口(viewport)进行定位,其位置在屏幕进行滚动时会保持不变,不占用文档流中的位置,而且打印时这个元素会出现在 每一页 的相同位置。设置了 position: fixed 的元素最终的位置由它的 top, right, bottom, left 来决定,这个值会创建一个新的 stacking context(不知道这个词应该如何准确地翻译,姑且认为是层叠上下文吧)。
但是,有些情况下,这种定位方式会失效,使得元素相对于视窗定位的定位不符合预期(其实是 fixed 定位的参考元素变了)。当该元素的父元素中(广义,包含祖先元素)有元素的 transformperspective 的值不是 none,该元素就会相对于这个父元素而不是视口进行定位。
具体的原因是这样:

Specifying a value other than none for the transform property establishes a new local coordinate system at the element that it is applied to. The mapping from where the element would have rendered into that local coordinate sys

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值