關於定位position:sticky的經驗總結


項目要求做一個仿照google瀏覽器的參數設置界面,拿到手任務的第一時間,去看了google瀏覽器設置界面的css結構,發現了很有趣的樣式,即這次的總結position:sticky.

通過查詢百度,知道了sticky屬性有以下幾個特點:

  • 該元素並不脫離文檔流,仍然保留元素原本在文檔流中的位置。
  • 當元素在容器中被滾動超過指定的偏移值時,元素在容器內固定在指定位置。亦即如果你設置了top: 50px,那么在sticky元素到達距離相對定位的元素頂部50px的位置時固定,不再向上移動。
  • 元素固定的相對偏移是相對於離它最近的具有滾動框的祖先元素,如果祖先元素都不可以滾動,那么是相對於viewport來計算元素的偏移量。

但是在實際用起來,還是不出意料有了些小問題,自己仿照寫的代碼不生效,為什么?

首先想到了是不是自己代碼里監聽了滾動條事件和這個有沖突,把事件統統禁掉,還是不生效。

然后又開始百度,最后拿到了問題的答案:

position:sticky 屬性,要求在其設置該屬性的所有父級元素上,不能有明顯的高度css屬性,即height:100%等都不行,經過排查,發現height:auto是可行的,就把父級換成了height:auto.

問題解決。

猜想是因為設置高度會影響overflow屬性,進而影響到sticky,關於這個原因我還是要繼續百度,弄清楚為止,加油。


免責聲明!

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



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