CSS3彈性盒模型開發(fā)筆記(一)

彈性盒模型(Flexible Box Moudle),該模型用于決定元素在盒子中的分布方式以及處理盒子的可用空間。這與XUL(Firefox瀏覽器的用戶交互語言)相似,其他語言也使用相同的盒模型。如XAML,GladeXML等。通過彈性盒模型,可以輕松地創(chuàng)建自適應瀏覽器窗口的流動布局或自適應字體大小的彈性布局。
兼容性:彈性盒模型規(guī)范是W3C標準化組織于2009年發(fā)布的,目前還沒有主流瀏覽器對其進行支持,不過采用Webkit和Mozilla渲染引擎的瀏覽器都自定義了一套私有屬性,用來支持彈性盒模型。
采用Webkit渲染引擎的瀏覽器主要包括Safari和Chrome瀏覽器,該引擎支持以-webkit為前綴的私有屬性。
Mozilla渲染引擎的瀏覽器主要包括Firefox瀏覽器,該引擎支持以-moz為前綴的私有屬性。
相關屬性:
box-align:定義子元素在盒子垂直方向上的空間分配方式
box-direction:定義盒子的顯示順序
box-flex:定義子元素在盒子內(nèi)的自適應尺寸
box-flex-group:定義自適應子元素群組
box-lines:定義子元素分列顯示
box-ordinal-group:定義子元素在盒子內(nèi)的顯示位置
box-orient:定義盒子分部的坐標軸
box-pack:定義子元素在盒子內(nèi)水平方向的空間分配方式
box-orient屬性
該屬性可用于定義盒子元素內(nèi)部的流動布局方向.在使用彈性盒子模型時,需要先把父容器的display屬性設置為box或者inline-box。
語法:
box-orient:horizontal | vertail | inline-axis | block-axis | inherit
取值簡單說明:
horizontal:盒子元素從左到右在一條水平線上顯示它的子元素。
vertail:盒子元素從上到下在一條垂直線上顯示它的子元素。
inline-axis:盒子元素沿著內(nèi)聯(lián)軸顯示它的子元素。
block-axis:盒子元素沿著塊軸顯示它的子元素。
實戰(zhàn)體驗:設計多欄布局
html代碼:
- <div id="box">
- <div id="box0"><img src="images/web_01.gif" /></div>
- <div id="sub-box">
- <div id="box1"><img src="images/web_02.gif" /></div>
- <div id="box2"><img src="images/web_03.gif" /></div>
- <div id="box3"><img src="images/web_04.gif" /></div>
- </div>
- </div>
CSS3代碼:
- <style type="text/css">
- body{/*文檔樣式*/
- margin:0;padding:0px;/*清除頁邊距*/
- text-align:center;/*文檔居中對齊*/
- background:#170843;
- }
- #box{
- margin:auto;/*文檔居中對齊*/
- text-align:center;
- width:975px;
- }
- /*定制各個欄目的寬度*/
- #box1{width:185px;}
- #box2{width:601px;}
- #box3{width:189px;}
- /*定制子包含框的盒子顯示,其包含的元素水平流動*/
- #sub-box{
- display:-moz-box;
- display:-webkit-box;
- display:box;
- box-orient:horizontal;
- -moz-box-orient:horizontal;
- -webkit-box-orient:horizontal;
- }
- </style>
演示效果:
box-direction屬性
box-direction屬性可以改變盒子元素中內(nèi)部元素的流動順序,該屬性基本語法:
box-direction:normal | reverse | inherit
取值簡單說明:
normal:正常顯示順序,即如果盒子元素的box-origent屬性值為horizontal,則其包含的子元素按照從左到右的順序顯示,即每個子元素的左邊總是靠近前一個子元素的右邊;如果盒子元素的box-origent屬性值設置為vertical,則其包含的子元素按照從上到下的順序顯示。
reverse:反向顯示,盒子所包含的子元素的顯示順序?qū)⒂趎ormal相反。
inherit:繼承上級元素的顯示順序。
實戰(zhàn)體驗:反向布局網(wǎng)頁(以上面的案例為基礎):
CSS3代碼:
- <style>
- body{
- margin:0;padding:0px;
- text-align:center;
- background:#170843;
- }
- #box{
- margin:auto;
- text-align:center;
- width:975px;
- }
- #box1{width:185px;}
- #box2{width:601px;}
- #box3{width:189px;}
- #sub-box{
- display:-moz-box;
- display:-webkit-box;
- display:box;
- box-orient:horizontal;
- -moz-box-orient:horizontal;
- -webkit-box-orient:horizontal;
- box-direction:reverse;
- -moz-box-direction:reverse;
- -webkit-box-direction:reverse;
- }
- </style>
演示效果:
box-ordinal-group屬性
box-direction屬性可以改變盒子內(nèi)部元素的流動順序,而box-ordinal-group屬性能夠設置每個子元素在盒子中的具體顯示位置,語法如下:
box-ordinal-group:<integer>
取值說明:
屬性值是一個自然數(shù),從1 開始,用來設置子元素的位置符號。子元素的分布將根據(jù)這個屬性值從小到大進行排列。在默認情況下,子元素將根據(jù)元素的位置進行排列。
注意:如果沒有指定box-ordinal-group屬性值的子元素,則其序號默認都為1,并且序號相同的元素將按照他們在文檔中的加載的順序進行排列。
實戰(zhàn)體驗:垂直網(wǎng)頁布局
HTML代碼:
- <div id="box">
- <div id="box1"><img src="images/web1_01.gif" /></div>
- <div id="box2"><img src="images/web1_02.gif" /></div>
- <div id="box3"><img src="images/web1_03.gif" /></div>
- <div id="box4"><img src="images/web1_04.gif" /></div>
- </div>
CSS3代碼:
- <style type="text/css">
- body {
- margin:0;
- padding:0;
- text-align:center;
- background:#d9bfe8;
- }
- #box {
- margin:auto;
- text-align:left;
- width:988px;
- }
- /*定義盒形顯示及盒內(nèi)元素垂直顯示*/
- #box {
- display : -moz-box;
- display : -webkit-box;
- display : box;
- box-orient:vertical;
- -moz-box-orient:vertical;
- -webkit-box-orient:vertical;
- }
- /*根據(jù)網(wǎng)頁內(nèi)容的現(xiàn)實需要,借助彈性盒模型調(diào)整各個板塊的顯示順序*/
- #box1 {/*設置第一個元素顯示在第二個位置*/
- -moz-box-ordinal-group : 2;/*兼容Mozilla Gecko引擎*/
- -webkit-box-ordinal-group : 2;/*兼容Webkit引擎*/
- box-ordinal-group : 2;/*標準用法*/
- }
- #box2 {/*設置第二個元素顯示在第三個位置*/
- -moz-box-ordinal-group : 3;/*兼容Mozilla Gecko引擎*/
- -webkit-box-ordinal-group : 3;/*兼容Webkit引擎*/
- box-ordinal-group : 3;/*標準用法*/
- }
- #box3 {/*設置第三個元素顯示在第一個位置*/
- -moz-box-ordinal-group : 1;/*兼容Mozilla Gecko引擎*/
- -webkit-box-ordinal-group : 1;/*兼容Webkit引擎*/
- box-ordinal-group : 1;/*標準用法*/
- }
- #box4 {/*設置第四個元素顯示在第四個位置*/
- -moz-box-ordinal-group : 4;/*兼容Mozilla Gecko引擎*/
- -webkit-box-ordinal-group : 4;/*兼容Webkit引擎*/
- box-ordinal-group : 4;/*標準用法*/
- }
- </style>
演示效果:
以上就是關于CSS3彈性盒模型基礎開發(fā)知識總結,希望對大家認識CSS3彈性盒模型有所幫助。
本文地址:http://blog.csdn.net/lovejulyer/article/details/51231951
相關文章
CSS盒模型制定網(wǎng)頁的寬度和高度的原理-CSS教程-網(wǎng)頁制作-網(wǎng)頁教學網(wǎng)
當我們布局一個網(wǎng)頁的時候,經(jīng)常會遇到這樣的一種情況,那就是最終網(wǎng)頁成型的寬度或是高度會超出我們預先的計算,其實就就是所謂的CSS的盒模型造成的。 #test{margin:102008-10-17CSS教程:盒模型(BOX Model)-CSS教程-網(wǎng)頁制作-網(wǎng)頁教學網(wǎng)
如果想熟練掌握DIV和CSS的布局方法,首先要對盒模型有足夠的了解。每個HTML元素都可以看作一個裝了東西的盒子,盒子里面的內(nèi)容到盒子的邊框之間的距離即填充(padding2008-10-17CSS入門教程:計算CSS盒模型寬和高-CSS教程-網(wǎng)頁制作-網(wǎng)頁教學網(wǎng)
出處:當我們布局一個網(wǎng)頁的時候,經(jīng)常會遇到這樣的一種情況,那就是最終網(wǎng)頁成型的寬度或是高度會超出我們預先的計算,其實就就是所謂的CSS的盒模型造成的。 #test{m2008-10-17- 網(wǎng)頁制作Webjx文章簡介:如果想熟練掌握DIV和CSS的布局方法,首先要對盒模型有足夠的了解。每個HTML元素都可以看作一個裝了東西的盒子,盒子里面的內(nèi)容到盒子的邊框之間的2009-04-02
- 網(wǎng)頁制作Webjx文章簡介:盒模型主要定義四個區(qū)域:內(nèi)容(content)、內(nèi)邊框距(padding)、邊框(border)和外邊距(margin)。 自從1996年CSS1的推出,W32009-04-02
- CSS 盒模型 網(wǎng)頁設計中的每個元素都是長方形的盒子。盒子的尺寸是怎樣精確計算的,請看下圖: 如果是 Firebug 用戶的話(基本和前端有關的都會用到 Firebug 吧 –2009-06-06
- Margin 比較特別,它不會影響盒子本身的大小,但是它會影響和盒子有關的其他內(nèi)容,因此 margin 是盒模型的一個重要的組成部分。2009-07-19
- 盒模型是CSS的核心知識點之一,它指定元素如何顯示以及如何相互交互。頁面上的每個元素都被看成一個矩形框,這個框由元素的內(nèi)容、內(nèi)邊距、邊框和外邊距組成,需要了解的朋友2012-12-24
- Css3引入了新的盒模型——彈性盒模型決定一個盒子在其他盒子中的分布方式以及如何處理可用的空間,使用該模型,可以很輕松的創(chuàng)建自適應瀏覽器窗口的流動布局或自適應字體大2013-05-27
- 今天剛學了css3的彈性盒模型,這是一個可以讓你告別浮動、完美實現(xiàn)垂直水平居中的新特性。本文主要是總結一下今天所學,有需要的朋友可以參考下2014-10-08