CSS布局
在網頁中,元素有三種布局模型:
1、流動模型(Flow)
2、浮動模型 (Float)
3、層模型(Layer)
流動模型
流動(Flow)是默認的網頁布局模式。也就是說網頁在默認狀態下的 HTML 網頁元素都是根據流動模型來分布網頁內容的。
流動布局模型具有2個比較典型的特征:
第一點,塊狀元素都會在所處的包含元素內自上而下按順序垂直延伸分布,因為在默認狀態下,塊狀元素的寬度都為100%。實際上,塊狀元素都會以行的形式占據位置。
第二點,在流動模型下,內聯元素都會在所處的包含元素內從左到右水平分布顯示。(內聯元素可不像塊狀元素這麽霸道獨占一行)
浮動模型
塊狀元素這麽霸道都是獨占一行,如果現在我們想讓兩個塊狀元素並排顯示,怎麽辦呢?不要著急,設置元素浮動就可以實現這一願望。
任何元素在默認情況下是不能浮動的,但可以用 CSS 定義為浮動,如 div、p、table、img 等元素都可以被定義為浮動。如下代碼可以實現兩個 div 元素一行顯示。
div{ width:200px; height:200px; border:2px red solid; float:left; } <div id="div1"></div> <div id="div2"></div>
效果圖
當然你也可以同時設置兩個元素右浮動也可以實現一行顯示。
div{ width:200px; height:200px; border:2px red solid; float:right; }
效果圖
又有小夥伴問了,設置兩個元素一左一右可以實現一行顯示嗎?當然可以:
div{ width:200px; height:200px; border:2px red solid; } #div1{float:left;} #div2{float:right;}
效果圖
層模型
層模型有三種形式:
1、絕對定位(position: absolute)
2、相對定位(position: relative)
3、固定定位(position: fixed)
如果想為元素設置層模型中的絕對定位,需要設置position:absolute(表示絕對定位),這條語句的作用將元素從文檔流中拖出來,然後使用left、right、top、bottom屬性相對於其最接近的一個具有定位屬性的父包含塊進行絕對定位。如果不存在這樣的包含塊,則相對於body元素,即相對於瀏覽器窗口。
如下面代碼可以實現div元素相對於瀏覽器窗口向右移動100px,向下移動50px。
div{ width:200px; height:200px; border:2px red solid; position:absolute; left:100px; top:50px; } <div id="div1"></div>
效果如下:
CSS布局