記錄一下常常使用的position相關屬性,以及一些關於使用中遇到的坑css
position:fixed; 複製代碼
元素的位置相對於瀏覽器窗口是固定位置,即便窗口是滾動的它也不會移動。Fixed定位使元素的位置與文檔流無關,所以不佔據空間。 Fixed定位的元素和其餘元素重疊。html
position:relative; top:10px; left:20%; 複製代碼
若是對一個元素進行相對定位,它將出如今它所在的位置上。而後,能夠經過設置垂直或水平位置,讓這個元素「相對於」它的起點進行移動。 在使用相對定位時,不管是否進行移動,元素仍然佔據原來的空間。所以,移動元素會致使它覆蓋其它框。用top,left,right,bottom屬性去改變元素的位置瀏覽器
position:absolute; 複製代碼
position:sticky; 複製代碼
元素先按照普通文檔流定位,而後相對於該元素在流中的flow root(BFC)和 containing block(最近的塊級祖先元素)定位。然後,元素定位表現爲在跨越特定閾值前爲相對定位,以後爲固定定位。bash
position:Static; 複製代碼
默認值。沒有定位,元素出如今正常的流中(忽略top, bottom, left, right 或者 z-index 聲明)。markdown
position:inherit; 複製代碼
規定應該從父元素繼承position 屬性的值。佈局
關於absolute定位:子元素使用absolute進行定位的時候,會一層一層地向上去找本身的父元素中有沒有設置position:relative屬性的父元素,若是找到了,那麼全部的偏移量例如top:10px這種都是相對於父元素的位置來進行偏移,若是本身的全部父元素都沒有設置position:relative,那麼absolute定位的時候會相對於根元素也就是body元素來進行偏移flex
<html> <head> <style> .grandFather { width:700px; height:500px; background-color:blue; margin:200px auto; } .father { width:200px; height:100px; background-color:red; } .son { width:50px; height:50px; background-color:green; } </style> </head> <body> <div class="grandFather"> <div class="father"> <div class="son"></div> </div> </div> </body> </html> 複製代碼
如圖,咱們聲明瞭3個嵌套的div,按父元素到子元素的順序分別取名爲爺爺、爸爸、兒子,尺寸分別爲700x500,200x100,50x50,設置了三個顏色以後,而且咱們爲了實驗的效果,用margin屬性將div的位置調到了瀏覽器的居中位置,效果以下:spa
top:30px;
複製代碼
.father
{
width:200px;
height:100px;
background-color:red;
position:relative;
}
複製代碼
.grandFather
{
width:700px;
height:500px;
background-color:blue;
margin:200px auto;
position:relative;
}
複製代碼
咱們會發現position屬性不少時候會改變網頁的佈局,而且在瀏覽器大小發生變化的時候不可以自適應的變化,因此下一篇文章介紹流式佈局flex屬性,如何實現基本的自適應佈局方式。code