fixed不以body定位,相對於父級容器定位問題


 

經常在做一個頁面的時候,希望一個元素不希望隨着滾動條的滾動而動,這個時候就要用到fixed了
但是又不希望它根據整個窗口的左右兩邊定位(因為如果分辨率變小了,它與中間頁面的距離就會變了)
希望達到的效果如下圖所示

解決方法:只需要使用margin定位就可以了

如圖,最先開始使用left,right進行定位

 

兩個按鈕是寫在中間內部頁面里面的

效果在不同分辨率下,與中間頁面顯示距離有差別
1920px分辨率下:

 

1366px分辨率下:

 

采用margin定位后,就會根據父級元素定位 (例子中的div .caseDetail類 ):

 

效果如下,無論何分辨率都以中間為定位,效果達成:

 

 


 

 

position:fixed 相對父元素定位

position:fixed是對於瀏覽器窗口定位的,要實現相當於父元素定位,可以這樣:

不設置fixed元素的top,bottom,left,right,只設置margin來實現。

這種方法本質上fixed元素還是相當於窗口定位的,實現效果上是相對於父元素定位。

此外,position:fixed元素會受到父元素的影響,而出現不能以窗口進行定位:

1. 因為fixed元素並不總是相對於視窗進行定位的,父元素發生變換,也就是transfrom屬性發生改變,如平移或旋轉,會對固定定位的子元素產生影響 例子:固定定位不固定

2. 如果父級元素的z-index的層次比同級元素低,就算fixed的z-index比父級高,也會被父級同級元素遮擋。

因此,position:fixed元素若要以窗口進行定位,最好是放在body根標簽下

 


免責聲明!

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



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