普通流(normal flow):
將窗體自上而下分成一行一行,並在每行中按從左至右的挨次排放元素,即為普通流/文檔流。
內聯元素不會獨占一行,而每個非浮動塊級元素都獨有一行, 浮動元素則按規則浮在行的一端. 若當時行容不下, 則另起新行再浮動。浮動元素不占任何正常文檔流空間,而浮動元素的定位照樣基於正常的文檔流,當一個元素脫離正常文檔流后,依然在文檔流中的其他元素將忽略該元素並填補其原先的空間。
position屬性值:
absolute:絕對定位。完全離開文檔流,使用left,right,top,bottom等屬性相對於其最接近的一個具有定位設置(即position值不為默認值static)的父對象進行絕對定位。如果不存在這樣的父對象,則依據body對象。而其層疊通過z-index屬性定義。當對象定位在瀏覽器窗口以外,瀏覽器因此顯示滾動條。
relative:相對定位,原本所占的空間仍保留。對象不可層疊,但將依據left,right,top,bottom等屬性在正常文檔流中偏移位置。當對象定位在瀏覽器窗口以外,瀏覽器因此顯示滾動條。
fixed:固定定位。完全離開文檔流,對象定位遵從絕對(absolute)方式,但是要遵守一些規范。當對象定位在瀏覽器窗口以外,瀏覽器不會因此顯示滾動條,而當滾動條滾動時,對象始終固定在原來位置,即相關於視區進行偏移。
static:元素框正常生成。塊級元素生成一個矩形框,作為文檔流的一部分,行內元素則會創建一個或多個行框,置於其父元素中。
inherit:繼承值,對象將繼承其父對象相應的值。
注意:使用float脫離文檔流時,其他盒子會無視這個元素,但其他盒子內的文本依然會為這個元素讓出位置,環繞在周圍。而對於使用absolute positioning脫離文檔流的元素,其他盒子與其他盒子內的文本都會無視它 。