我希望在使用Chrome浏览器中使用主题,3D,转换,滑块和动画的项目时,此信息可帮助其他遇到“位置:已修复”问题的人。
问题:使用固定位置定位的元素:没有出现在正确的位置,不会中断,并且被锁定到父容器中。
更详细的问题:位置固定的子元素由父元素包含,其中属性位置设置为relative,transform设置为none以外的任何值,该子元素使用其父容器和属性转换集来确定固定定位,不会按预期“突破”或确定视口的固定位置。
对此的答案由:https://stackoverflow.com/revisions/15256339/2
中的Saml指定此问题似乎是由于设置了CSS转换属性引起的。 CSS变换为该元素的子元素将用于定位的元素创建新的局部坐标系。这会导致任何具有position:fixed的元素固定到最后一个元素,其变换不等于none。
这正是变换是如何根据w3规范工作的,并且它在规范中指定的chrome中工作。 https://www.w3.org/TR/css-transforms-1/#transform-rendering
这不是错误,您需要删除transform属性或将元素移到transform元素之外。
答案 0 :(得分:0)
我没有一个解决方案可以让你从拥有css属性转换集的父元素中分离出一个子元素。请参考下面的工作来取消对父项的转换,直到找到更好的解决方案。
通过将transform设置为none来分解子项的解决方案: (如果您要求父级具有变换集,则无效)
同样的答案也被发现: 在这里 - https://stackoverflow.com/revisions/15256339/2 在这里 - https://css-tricks.com/forums/topic/fixed-positioning-not-working-in-chrome/#post-188228
在捕获子项的父元素上设置以下属性。这是根据w3c规范(见上面的链接),它不影响FF -webkit-transform:none!important; 变换:无!重要;
确保将父容器设置为相对位置。