經常在做一個頁面的時候,希望一個元素不希望隨着滾動條的滾動而動,這個時候就要用到fixed了
但是又不希望它根據整個窗口的左右兩邊定位(因為如果分辨率變小了,它與中間頁面的距離就會變了)
希望達到的效果如下圖所示
解決方法:只需要使用margin定位就可以了
如圖,最先開始使用left,right進行定位
兩個按鈕是寫在中間內部頁面里面的
效果在不同分辨率下,與中間頁面顯示距離有差別
1920px分辨率下:
1366px分辨率下:
采用margin定位后,就會根據父級元素定位 (例子中的div .caseDetail類 ):
效果如下,無論何分辨率都以中間為定位,效果達成:
position:fixed是對於瀏覽器窗口定位的,要實現相當於父元素定位,可以這樣:
不設置fixed元素的top,bottom,left,right,只設置margin來實現。
這種方法本質上fixed元素還是相當於窗口定位的,實現效果上是相對於父元素定位。
此外,position:fixed元素會受到父元素的影響,而出現不能以窗口進行定位:
1. 因為fixed元素並不總是相對於視窗進行定位的,父元素發生變換,也就是transfrom屬性發生改變,如平移或旋轉,會對固定定位的子元素產生影響 例子:固定定位不固定。
2. 如果父級元素的z-index的層次比同級元素低,就算fixed的z-index比父級高,也會被父級同級元素遮擋。
因此,position:fixed元素若要以窗口進行定位,最好是放在body根標簽下