如图所示,说按照上面的设置,就能让position:fixed相对于父元素定位,而不再是视口。我试了下,只有给父元素设置transform生效了,子元素设置了固定定位,确实是相对于父元素定位了。但是其他的方法,都不生效,求大神解惑一二
PS:谢谢大家的热心解答。我也知道这样做不好,就是想知道为啥,嘿嘿!
如图所示,说按照上面的设置,就能让position:fixed相对于父元素定位,而不再是视口。我试了下,只有给父元素设置transform生效了,子元素设置了固定定位,确实是相对于父元素定位了。但是其他的方法,都不生效,求大神解惑一二
PS:谢谢大家的热心解答。我也知道这样做不好,就是想知道为啥,嘿嘿!
前面的同学说的都有道理,fixed定位被滥用了。
应该这样就可以了吧:
父元素设置position:relative
子元素设置position:absolute
再细看题主,原来是问为什么。
感觉这些非标准的CSS方案,刚好表现为这样,真的要看浏览器实现代码了。
也许在某个版本升级的时候这些设置都失效了,这些知识点应该是知道尽量避免就好,细究为何会这样的话,也许是某个程序员的bug啊 ヾ(。>﹏<。)ノ゙✧*。
题主是想问有滚动条的div内部元素相对于父元素定位的问题吗?
如果是,可以参考这篇文章
https://hellohy.github.io/201...
demo:
https://codepen.io/hellohy/pe...
3 回答4.8k 阅读✓ 已解决
5 回答1.7k 阅读
2 回答1.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
3 回答2.3k 阅读
4 回答2.1k 阅读
1 回答1.9k 阅读✓ 已解决
图示的作者是不是对堆叠上下文(stacking context)有什么误解……
定位依据的是 containing block,position fixed 的 containing block 是 viewport 宣布的
https://www.w3.org/TR/CSS22/v...
transform 是因为其特殊性影响了 fixed 的 containing block
https://www.w3.org/TR/css-tra...
想让 position:fixed 的元素相对于父元素定位,应该改成 absolute 以及父元素 relative。而不是让 fixed 干不应该干的事。