Css3引入了新的盒子模型—彈性盒模型,該模型決定一個盒子在其他盒子中的分佈方式以及如何處理可用的空間。這與XUL(火狐使用的使用者互動語言)相似,其它語言也使用相同的盒子模型,如XAML 、GladeXML。
使用該模型,可以輕鬆的創建自適應瀏覽器視窗的流動佈局或自適應字體大小的彈性佈局。本文的範例使用以下的HTML程式碼:
<body>
<div id="box1">1</div>
<div id="box2">2</div>
<div id="box3">3</div>
</body>
傳統的盒模型是基於HTML流在垂直方向上排列盒子。使用彈性盒模型可以規定特定的順序,也可以反轉之。要開啟彈性盒模型,只需設定擁有子盒子的盒子的display的屬性值為box(或inline-box)即可。
display: box;
水平或垂直分佈
「box-orient」定義分佈的座標軸:vertical和horizional。這兩個值定義盒子如何顯示
body{
display: box;
box-orient: horizontal;
}
反向分佈
「box-direction」可以設定盒子出現的順序。預設情況下,只需定義分佈座標軸-box隨html流分佈。如果為水平座標軸,則從左到右分佈;垂直座標軸則從上到下分佈。定義“box-direction”的屬性值為“reverse”,則反轉盒子的排列順序。
body {
display: box;
box-orient: vertical;
box-direction: reverse;
}
具體分佈
屬性“box-ordinal-group”定義盒子分佈的順序。可以隨意的控制其分佈順序。這些組以一個從“1”開始的數字定義,盒模型將首先分佈這些組,所有這些盒子將在每個組中。分佈將從小到大排列。
body {
display: box;
box-orient: vertical;
box-direction : reverse;
}
#box1 {
box-ordinal-group: 2;
}
#box2 {
box-ordinal-group: 2;
}
#box3 {
box-ordinal-group: 1;
}