absolute:相對一個不為static的父元素進行絕對定位,如果不指定父元素的position,absolute將相對整個html文件進行絕對定位。會優先顯示於正常文件流定位元素以及float元素。
先後於定義結果一樣)。如下:
也會出現文字包繞現象:
##當塊級元素先於浮動元素定義時,浮動元素換行排後。當浮動元素先定義時,脫離文件流,不會對正常文件流的區塊級元素造成影響。
3,內部盒子浮動元素和外部文檔流內部元素關係:
浮動元素覆蓋外部文檔流元素,但不佔據空間。
#綠色區塊和圖片是藍色區塊的內部元素,可見,區塊級元素照正常文檔流顯示,但內嵌元素img還是會讓步於浮動元素,即使是外部文檔流的浮動元素。
4,兄弟元素絕對定位和浮動的優先關係
藍色塊為黃色內部區塊的absolute定位元素,且先於紅色區塊設定p。紅色塊為Float定位元素,被absolute覆蓋。
5,絕對定位和文檔流元素的優先關係&相對定位元素的優先關係
絕對定位position:absolute。
1,相對一個不為static的父元素進行絕對定位,如果不指定父元素的position,absolute將相對整個html文件進行絕對定位。
2,如果沒有設定top\left\bottom\right,則其頂端和左側將與原始文件流位置一致(即跟沒有設定position一樣),但又會覆寫外部文件流內部浮動元素多出部分。
下圖為藍色區塊設定position:absolute;
# (註:黃色區塊(內含紅色和綠色子元素)和藍色區塊(內含綠色子元素)是兄弟元素)
調換下順序,藍色區塊先設定p,position為absolute。黃色區塊沒設定position,即預設static。因為脫離了文件流,absolute元素優先顯示。
#設定黃色區塊position為relative,黃色區塊覆蓋絕對定位元素。即相對定位元素後於絕對定位元素定位時,相對定位元素優先顯示。
總結:
1,正常文件流下,外部盒子優先顯示於先定義元素的內盒子(如果超出會被覆蓋)。區塊級元素和內聯元素不會在同一行。
2,對內部和外部文件流,浮動元素脫離文檔流,對於先定義的元素按正常文檔流顯示(讓位塊級,擠壓內聯) ,對後定義的元素不造成佈局影響,但卻影響正常文檔流的內聯元素展示,表現為內聯元素依舊會被浮動元素“擠開”(不論哪裡的內聯元素,都不會被覆蓋在浮動元素之下)
3,絕對定位元素優先顯示於浮動元素。
4,不設定特定值的絕對定位元素會依正常文件流排列,但脫離文件流,不對後定義元素造成影響。
5,如果兄弟元素設定了position:relative;當先於絕對定位元素定義時,絕對定位元素優先顯示於相對定位元素。
當後於絕對定位元素定義時,相對定位元素優先顯示於絕對定位元素。
四、如何對位對齊
水平居中:
#1.實現行內元素的居中。 方法:在行內元素外面的區塊元素的樣式中加入:text-align:center;
2.實作區塊級元素的水平居中。
方法一:margin:0 auto;
注意:如果區塊級元素是body的直接子元素,不設定寬,則預設100% ,看不出效果;不設定高,且p沒有內容,則高度預設為0。因此,一定要同時設定塊級元素的寬和高,這樣才能看出來效果。對於在一個p中的另一個p希望居中,也可以使用這個方式,因為這時的margin是相對於其父元素而言的。
方法二:使用絕對定位和負邊距。
position:absolute;
left:50%; -相對於父級元素向左移動55%#-#left);移回自身寬度的一半
垂直居中
1.行內元素的垂直居中
方法一:讓字體垂直居中,line-height設定為父元素高度。
方法二:設定padding讓其垂直居中。
方法三:父元素設定line-height,行內元素設定vertical-align:middle。
2.區塊級元素的垂直居中。
方法一:使用絕對定位和負邊距。
方法二:在父元素中加入display:flex;align-items:center;即可實現垂直居中。
實現水平與垂直居中
方法一:使用絕對定位與負邊距
方法二:使用display:flex 在父元素的樣式中加入display:flex;align-items:center實作垂直居中,justify-content:center;實現水平居中
。
方法三:同樣使用display:flex.在父元素中設定display:flex;在子元素中設定margin:auto。
方法四:使用css3屬性-translate()變形函數 position: absolute; top:50%; left:50%; transform:50%; transform:50%; translate(-50%,-50%);
五、關於樣式繼承
盒模型樣式是不可繼承的,例如width、height(寬高) 、border(邊框)、margin(邊距)、padding(補白)和背景等
vertical-align不可繼承
可繼承屬性
color
cursor
direction
font
list-style text-align text-indent text-shadow ## # word-break
##
word-spacing
word-wrap
writing-mode
更多一用CSS 元件快速佈局(如何設計使用模式###########1更多一用CSS 元素:快速佈局。詳細 相關文章請關注PHP中文網! ###