css支持6種定位模型css
position:static;能夠取消元素的定位設置,使之恢復爲原先在常規流中的顯示方式.static是默認值.html
position:relative;可使元素相對於常規流的位置偏移必定距離.瀏覽器
position:absolute;可使元素相對於常規流的位置或最近定位祖先元素的位置偏移必定的距離.佈局
position:fixed;可使元素相對於窗口偏移必定的距離.spa
z-index能夠設置元素的堆疊順序,數值越大,元素越靠上.code
最近定位祖先元素
<body>
就成爲定位祖先元素,換言之,<body>
是默認設定位置元素.原子顯示
原子顯示
的,這意味着它的靜態後代元素,行內內容和背景之間不可能出現外部元素.經過使用相對定位,絕對定位和固定定位
模式,就能夠將元素設置爲原子顯示,設置爲overflow:scroll|auto
的塊級元素也是原子顯示的而沒設定位置的靜態塊級,當發生重疊時,他們的行內內容不會重疊,可是他們的邊框和背景
會發生重疊,但文字
不會.htm
z-index
適用於全部元素,默認auto繼承
position:static;默認是static;圖片
尺寸
,內邊距
,邊框
,和外邊距
決定了下一個元素的開始位置.合併
在一塊兒,最終的外邊距是兩個相鄰元素外邊距的較大值
已設定尺寸
的靜態塊級
元素居中顯示.position:absolute;文檔
百分數
是相對於最近定位祖先元素的尺寸而言,而非父元素
的尺寸.auto
,可使它恢復
原先在常規流中的位置.0
,全部它的子元素都離開了常規流.若是不存在定位祖先元素,會根據<body>
來定位
div{ position:absolute; width:200px; height:200px; margin:0 auto; border:1px solid blue; /*left:0;*/ 這兩條沒用,沒有影響 /*right:0;*/ }
對於靜態行內元素,如em,strong,span等,可是不包括行內可替換元素(input,img,textarea等),使用絕對定位模式absolute時,width和right可使用爲了要居中,須要額外的加上left:0;和right:0;
使margin:0 auto;能夠正常的生效.
注意,這裏left和right必須是0
才行.
#em{ position:absolute; width:200px; height:200px; margin:0 auto; border:1px solid blue; left:0; right:0; }
position:fixed;能夠將任意元素變爲固定位置元素
窗口
而定,而非
相對於最近定位祖先`,並且元素不會隨頁面滾動而滾動.不須要最近定位祖先
優先
使用top和left的值,只有當top和left不存在
時,bottom和right纔會生效position:relative;
使用float:left;和float:right;可使元素離開常規流.
行內
,絕對定位
或固定定位
的元素使用float可使一些元素成爲浮動元素,經過relative能夠浮動元素設置爲相對定位,相對浮動元素仍然位於浮動元素所在的常規流中,可使用left和top設置它在流中的偏移位置.
在css中,若是參數值是0的話,不要加單位,
瀏覽器在渲染一個元素內容以前,會先渲染它的框,順序是從背景顏色開始,而後是背景圖片,接着是邊框,最後,瀏覽器會在框之上渲染框的內容