如何脫離標准文檔流,css中給了三種方法,使一個元素脫離標准文檔流。
1.浮動。 2.絕對定位。 3.固定定位。
一、 什么是浮動呢?定義這樣說:浮動的框可以向左或向右移動,直到它的外邊緣碰到包含框或另一個浮動框的邊框為止。 其實也就是把快級元素變成能和別的快級並排成一行。
二、浮動的的元素有4點特性:
1.浮動元素會脫離標准文檔流,已經不區分快和行了。
2.浮動的元素會互相貼靠。
3.浮動的元素有“字圍”的效果。
4.收縮。一個浮動的元素,如果沒有設置width,那么將自動收縮為文字的寬度。
三、清除浮動的方法。
1.給浮動的元素的祖先元素加高度(父元素或祖元素)。只要浮動在一個有高度的盒子中,那么這個浮動就不會影響后面的元素了,也就是說,如果盒子內部有浮動,這個盒子有高,那么妥妥的,浮動不會互相影響。所以也就清除了浮動帶來的影響。浮動的元素,只能被有高度的盒子關住。但是,工作上,我們絕對不會給所有的盒子加高度,這是因為麻煩,並且不能適應頁面的快速變化。(不建議使用)
.
2.clear:both;清除掉兩邊的浮動。但是有一個非常致命的問題,margin失效了,上下之間沒有了間距。
3.隔牆法。就是在兩個部分之間加一個<div>,設置一個高度。還有就是“內牆發”:就是在塊里邊在放一個<div>,設置高度,不僅不讓后邊的去追前邊的,並且能給外邊的<div>撐出一個高度。
注:脫標的元素是不能把父元素撐出高度滴。
外牆法:
內牆法:
4.overflow:hidden; 一個父元素不能被自己浮動的兒子撐出高度。但是,只要給父親加上 overflow:hidden;那么父元素就能被兒子撐出高度了。 最最最重要的是,使用overflow:hidden;能使margin生效!你沒有看錯,就是醬。
關於浮動的問題就醬啦,有什么不對的地方希望大家給給建議。