我最近几个小时一直试图弄清楚为什么子元素被定位到其父元素而不是屏幕视口,即使它被设置为 'fixed'。很幸运,我偶然发现提到在父元素上使用
1.为什么
更新: 好吧,似乎我已经找到了第二个问题的答案。这是提交信息:
应用translate3d到模态、固定导航栏和affix以解决浏览器重绘
以下是第二个问题的答案:
除了'none'之外的任何计算值都会创建一个堆叠上下文和一个包含块。该对象作为固定定位后代的包含块。
-webkit-transform: translate3d(0, 0, 0)
会出现问题。我正在使用bootstrap
框架,他们确实将此属性放在其中一个父元素拥有的.navbar-fixed-top
类中。一旦我将其删除,子元素开始相对于视口定位。所以我有两个问题:1.为什么
-webkit-transform: translate3d(0, 0, 0)
会产生这种恶劣的影响?
2.为什么Bootstrap的开发者要给.navbar-fixed-top
类添加这个属性?更新: 好吧,似乎我已经找到了第二个问题的答案。这是提交信息:
应用translate3d到模态、固定导航栏和affix以解决浏览器重绘
以下是第二个问题的答案:
除了'none'之外的任何计算值都会创建一个堆叠上下文和一个包含块。该对象作为固定定位后代的包含块。