#css支援6種定位模型
絕對
固定
對相對
浮動
相對浮動
position:static;可以取消元素的定位設定,使之恢復為原先在常規流中的顯示方式.static是預設值.
position:relative;可以使元素相對於常規流的位置偏移一定距離.
position:absolute;可以使元素相對於常規流的位置或最近定位祖先元素的位置偏移一定的距離.
position:fixed;可以使元素相對於視窗偏移一定的距離.
z-index可以設定元素的堆疊順序,數值越大,元素越靠上.
最近定位祖先元素
如果設定位置的元素沒有定位祖先元素,那麼<body>
就成為定位祖先元素,換言之,<body>
是預設設定位置元素.
最近定位元素必須是有效的祖先元素(relative|absolute|fixed ),css不支援相對於文件中任意元素進行定位的方法.
原子顯示
設定了位置的元素是原子顯示
的,這意味著它的靜態後代元素,行內內容和背景之間不可能出現外部元素.通過使用相對定位,絕對定位和固定定位
模式,就可以將元素設定為原子顯示,設定為overflow:scroll|auto
的區塊級元素也是原子顯示的
而沒設定位置的靜態區塊級,當發生重疊時,他們的行內內容不會重疊,但是他們的邊框和背景
會發生重疊,但文字
不會.
z- index
適用於所有元素,預設auto
#z-index不是全域屬性,而是相對於設定了數字值z-index的最近定位祖先元素而定.根元素html會創建根堆疊上下文.每一個指定數字值z-index的設定位置元素都會創建一個本地的局部的堆疊上下文.
靜態定位元素依照文檔出現順序從後往前進行堆疊.
#設定位置元素忽略文檔元素出現順序,而是根據z-index值由小到大的順序從後往前堆疊.負值的設定位置元素位於靜態定位元素和非設定位置浮動元素之下
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;*/ }
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; }
而定, 非
相對於最近定位祖先`,而且元素不會隨頁面滾動而滾動.
因為它是相對頁面來定位,所以不需要最近定位祖先
#設定時最好以top,left來進行偏移定位,當同時設定top,left,bottom,right時,會優先
使用top和left的值,只有當top和left不存在
時,bottom和right才會生效
#position:relative;
使用float:left;和float:right;可以使元素離開常規流.
行內,
絕對定位或
固定定位的元素
使用float可以使一些元素成為浮動元素,透過relative可以浮動元素設定為相對定位,相對浮動元素仍然位於浮動元素所在的常規流中,可以使用left和top設定它在流中的偏移位置.
以上是CSS中定位模型有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!