如何讓position fixed不再基於瀏覽器窗口定位


 position:fixed默認是相對瀏覽器定位的。

就是將某個元素固定在瀏覽器的某個確定的位置,不隨滾動條的移動而變化;

 

MDN對position: fixed有一個注釋:

 

當元素祖先的 transform 屬性非 none 時,容器由視口改為該祖先。

 

也就是說如果想讓fixed不相對瀏覽器定位,只要給它的隨便哪個祖先設上非none的transform,問題就解決了。這祖先可以是static的,也就是說隨便哪個祖先都行。比如說給body設一個transform: translateZ(0);,測試有效。

 

不過想讓 position:fixed 的元素相對於父元素定位,應該改成 absolute 以及父元素 relative。而不是讓 fixed 干不應該干的事。相對父元素定位需要position fixed嗎?難道這是想搞事情啊!脫離黨指導路線的都不是什么好路子!

 

而且transform會對定位產生副作用,建議盡量避免一起使用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM