css固定定位如何基於父級來定為而不是視口

2021-10-10 04:37:27 字數 642 閱讀 5070

之前在專案中,遇到了乙個場景,需要實現相對于父元素的fixed定位:在父元素內拖動滾動條時,"fixed"定位的元素不能滑動,在外層拖動滾動條時,父元素及父元素內的所有元素跟著一起滑動。但是position: fixed是相對於視窗進行的定位,不能直接實現我們需要的效果。

我們想讓特定子元素相對于父元素"fixed"定位,也就是說,剩餘的子元素不定位。那我們可以分開來想,如果新增乙個祖先元素assistor,有兩個祖先元素,乙個用於輔助定位,乙個用於包裹不定位的內容,這個問題不就解決了嗎。像這樣

實質上是child相對於assistorabsolute定位,parent內的內容自己負責展示。只要assistor和parent一樣大,看起來就像是子元素child相對于父元素parent固定定位了。具體原理是position: absolute;的元素會相對於第乙個設定了position: relative;的祖先元素進行定位,我們將assistor設定為position: reletive;,滾動條是在parent中的,這樣"fixed"定位和parent內的內容滾動就都實現了。

.assistor 

.parent

.child

.placeholder

css的固定定位

三 固定定位 fixed 表示固定定位,與 absolute 定位型別類似,但它的相對移動的座標是檢視 螢幕內的網頁視窗 本身。由於檢視本身是固定的,它不會隨瀏覽器視窗的滾動條滾動而變化,除非你在螢幕中移動瀏覽器視窗的螢幕位置,或改變瀏覽器視窗的顯示大小,因此 固定定位 的元素會始終位於瀏覽器視窗內...

css 相對定位,絕對定位,固定定位

定位有三種,分別是相對定位 絕對定位 固定定位。相對定位 position relative 絕對定位 position absolute 固定定位 position fixed 相對定位 相對定位,就是微調元素位置的。讓元素相對自己原來的位置,進行位置調整。head meta charset ut...

理解CSS相對定位和固定定位

定義 可能理解起來最簡單的定位機制就是相對定位了。採用這種機制時,通過使用偏移屬性移動定位元素。當元素相對定位時,它會從其正常位置移走,不過,原來所佔的空間並不會因此消失。相對定位元素,會為其所有子元素建立乙個新的包含塊。這個包含塊對應於該元素原本所在的位置 注意 如果相對定位元素遇到過度受限的問題...