天天看點

定位與浮動

定位:position

position 屬性把元素放置到一個靜态的、相對的、絕對的、或固定的位置中。

屬性 解釋
inherit 從父元素繼承position屬性的值
static 預設的普通流
relative 相對定位,相對于元素本身正常位置(相對于static)進行定位
absolute 絕對定位,相對于第一個祖先元素進行定位
fixed 絕對(固定)定位,相對于浏覽器視窗定位

元素與文檔流的關系:

屬性 關系
relative 相對定位時,無論元素是否移動,元素在文檔流中占據且隻占據原來的空間(普通流的空間)
absolute 絕對定位時,元素脫離普通流,定位與文檔流無關
fixed 脫離普通文檔流,固定在浏覽器視窗某個位置

注意:使用絕對定位時,若想相對于某個父元素位置定位,需要給父元素添加屬性:position:relative;因為absolute是相對于 static 定位以外的第一個父元素進行定位的。

浮動:float

浮動性質:

當區域塊寬度不夠時,浮動元素自動下挪;

浮動會讓元素脫離文檔流,但并非完全脫離: 元素甲添加浮動left後,後面的非浮動元素乙占據了甲的位置,與甲重合,但是乙元素的文本内容會受浮動元素的影響并移動以留出空間。

浮動前:

定位與浮動

浮動後:注意文本位置的變化。

定位與浮動

clear屬性:

屬性 解釋
none 預設值,允許兩邊都可以有浮動對象;
left 不允許左邊有浮動對象
right 不允許右邊有浮動對象
both 不允許有浮動對象

對于CSS的清除浮動(clear),一定要牢記:這個規則隻能影響使用清除的元素本身,不能影響其他元素

overflow:hidden

根據屬性名字來看,hidden應該是隐藏超過區域塊元素(一般是float元素)的内容;但是當外層區域沒有設定高度時,使用overflow:hidden會擴充外層區域框的高度,直到把内層元素包含進去。