真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Flex布局新舊混合寫法分析

本篇內(nèi)容主要講解“Flex布局新舊混合寫法分析”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Flex布局新舊混合寫法分析”吧!

創(chuàng)新互聯(lián)建站專注于和靜企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城系統(tǒng)網(wǎng)站開(kāi)發(fā)。和靜網(wǎng)站建設(shè)公司,為和靜等地區(qū)提供建站服務(wù)。全流程按需設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

舊語(yǔ)法篇

定義容器的display屬性

.box{      display: -moz-box; /*Firefox*/      display: -webkit-box; /*Safari,Opera,Chrome*/      display: box;  }

容器屬性

1.box-pack 屬性

box-pack定義子元素主軸對(duì)齊方式。

.box{      -moz-box-pack: center; /*Firefox*/      -webkit-box-pack: center; /*Safari,Opera,Chrome*/      box-pack: center;  }

box-pack屬性總共有4個(gè)值:

.box{      box-pack: start | end | center | justify;      /*主軸對(duì)齊:左對(duì)齊(默認(rèn)) | 右對(duì)齊 | 居中對(duì)齊 | 左右對(duì)齊*/  }

2.box-align 屬性

box-align定義子元素交叉軸對(duì)齊方式。

.box{      -moz-box-align: center; /*Firefox*/      -webkit-box-align: center; /*Safari,Opera,Chrome*/      box-align: center;  }

box-align屬性總共有5個(gè)值:

.box{      box-align: start | end | center | baseline | stretch;      /*交叉軸對(duì)齊:頂部對(duì)齊(默認(rèn)) | 底部對(duì)齊 | 居中對(duì)齊 | 文本基線對(duì)齊 | 上下對(duì)齊并鋪滿*/  }

3.box-direction 屬性

box-direction定義子元素的顯示方向。

.box{      -moz-box-direction: reverse; /*Firefox*/      -webkit-box-direction: reverse; /*Safari,Opera,Chrome*/      box-direction: reverse;  }

box-direction屬性總共有3個(gè)值:

.box{      box-direction: normal | reverse | inherit;      /*顯示方向:默認(rèn)方向 | 反方向 | 繼承子元素的 box-direction*/  }

4.box-orient 屬性

box-orient定義子元素是否應(yīng)水平或垂直排列。

.box{      -moz-box-orient: horizontal; /*Firefox*/      -webkit-box-orient: horizontal; /*Safari,Opera,Chrome*/      box-orient: horizontal;  }

box-orient屬性總共有5個(gè)值:

.box{      box-orient: horizontal | vertical | inline-axis | block-axis | inherit;      /*排列方向:水平 | 垂直 | 行內(nèi)方式排列(默認(rèn)) | 塊方式排列 | 繼承父級(jí)的box-orient*/  }

5.box-lines 屬性

box-lines定義當(dāng)子元素超出了容器是否允許子元素?fù)Q行。

.box{      -moz-box-lines: multiple; /*Firefox*/      -webkit-box-lines: multiple; /*Safari,Opera,Chrome*/      box-lines: multiple;  }

box-lines屬性總共有2個(gè)值:

.box{      box-lines: single | multiple;      /*允許換行:不允許(默認(rèn)) | 允許*/  }

子元素屬性

1.box-flex 屬性

box-flex定義是否允許當(dāng)前子元素伸縮。

.item{      -moz-box-flex: 1.0; /*Firefox*/      -webkit-box-flex: 1.0; /*Safari,Opera,Chrome*/      box-flex: 1.0;  }

box-flex屬性使用一個(gè)浮點(diǎn)值:

.item{      box-flex: ;      /*伸縮:<一個(gè)浮點(diǎn)數(shù),默認(rèn)為0.0,即表示不可伸縮,大于0的值可伸縮,柔性相對(duì)>*/  }

2.box-ordinal-group 屬性

box-ordinal-group定義子元素的顯示次序,數(shù)值越小越排前。

.item{      -moz-box-ordinal-group: 1; /*Firefox*/      -webkit-box-ordinal-group: 1; /*Safari,Opera,Chrome*/      box-ordinal-group: 1;  }

box-direction屬性使用一個(gè)整數(shù)值:

.item{      box-ordinal-group: ;      /*顯示次序:<一個(gè)整數(shù),默認(rèn)為1,數(shù)值越小越排前>*/  }

新版語(yǔ)法

定義容器的display屬性

.box{      display: -webkit-flex; /*webkit*/      display: flex;  }     /*行內(nèi)flex*/  .box{      display: -webkit-inline-flex; /*webkit*/      display:inline-flex;  }

容器樣式

.box{      flex-direction: row | row-reverse | column | column-reverse;      /*主軸方向:左到右(默認(rèn)) | 右到左 | 上到下 | 下到上*/         flex-wrap: nowrap | wrap | wrap-reverse;      /*換行:不換行(默認(rèn)) | 換行 | 換行并***行在下方*/         flex-flow:  || ;      /*主軸方向和換行簡(jiǎn)寫*/         justify-content: flex-start | flex-end | center | space-between | space-around;      /*主軸對(duì)齊方式:左對(duì)齊(默認(rèn)) | 右對(duì)齊 | 居中對(duì)齊 | 兩端對(duì)齊 | 平均分布*/         align-items: flex-start | flex-end | center | baseline | stretch;      /*交叉軸對(duì)齊方式:頂部對(duì)齊(默認(rèn)) | 底部對(duì)齊 | 居中對(duì)齊 | 上下對(duì)齊并鋪滿 | 文本基線對(duì)齊*/         align-content: flex-start | flex-end | center | space-between | space-around | stretch;      /*多主軸對(duì)齊:頂部對(duì)齊(默認(rèn)) | 底部對(duì)齊 | 居中對(duì)齊 | 上下對(duì)齊并鋪滿 | 上下平均分布*/  }

子元素屬性

.item{      order: ;      /*排序:數(shù)值越小,越排前,默認(rèn)為0*/         flex-grow: ; /* default 0 */      /*放大:默認(rèn)0(即如果有剩余空間也不放大,值為1則放大,2是1的雙倍大小,以此類推)*/         flex-shrink: ; /* default 1 */      /*縮小:默認(rèn)1(如果空間不足則會(huì)縮小,值為0不縮?。?/         flex-basis:  | auto; /* default auto */      /*固定大?。耗J(rèn)為0,可以設(shè)置px值,也可以設(shè)置百分比大小*/         flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]      /*flex-grow, flex-shrink 和 flex-basis的簡(jiǎn)寫,默認(rèn)值為0 1 auto,*/         align-self: auto | flex-start | flex-end | center | baseline | stretch;      /*單獨(dú)對(duì)齊方式:自動(dòng)(默認(rèn)) | 頂部對(duì)齊 | 底部對(duì)齊 | 居中對(duì)齊 | 上下對(duì)齊并鋪滿 | 文本基線對(duì)齊*/  }

兼容寫法

首先是定義容器的 display 屬性:

.box{      display: -webkit-box; /* 老版本語(yǔ)法: Safari, iOS, Android browser, older WebKit browsers. */      display: -moz-box; /* 老版本語(yǔ)法: Firefox (buggy) */      display: -ms-flexbox; /* 混合版本語(yǔ)法: IE 10 */      display: -webkit-flex; /* 新版本語(yǔ)法: Chrome 21+ */      display: flex; /* 新版本語(yǔ)法: Opera 12.1, Firefox 22+ */  }

由于舊版語(yǔ)法并沒(méi)有列入W3C標(biāo)準(zhǔn),所以這里不用寫 display:box ,下面的語(yǔ)法也是一樣的。

這里還要注意的是,如果子元素是行內(nèi)元素,在很多情況下都要使用 display:block 或 display:inline-block  把行內(nèi)子元素變成塊元素(例如使用 box-flex 屬性),這也是舊版語(yǔ)法和新版語(yǔ)法的區(qū)別之一。

子元素主軸對(duì)齊方式

.box{      -webkit-box-pack: center;      -moz-justify-content: center;      -webkit-justify-content: center;      justify-content: center;  }

Flex布局新舊混合寫法分析

這里舊版語(yǔ)法有4個(gè)參數(shù),而新版語(yǔ)法有5個(gè)參數(shù),兼容寫法新版語(yǔ)法的 space-around 是不可用的:

.box{      box-pack: start | end | center | justify;      /*主軸對(duì)齊:左對(duì)齊(默認(rèn)) | 右對(duì)齊 | 居中對(duì)齊 | 左右對(duì)齊*/         justify-content: flex-start | flex-end | center | space-between | space-around;      /*主軸對(duì)齊方式:左對(duì)齊(默認(rèn)) | 右對(duì)齊 | 居中對(duì)齊 | 兩端對(duì)齊 | 平均分布*/  }

子元素交叉軸對(duì)齊方式

.box{      -webkit-box-align: center;      -moz-align-items: center;      -webkit-align-items: center;      align-items: center;  }

Flex布局新舊混合寫法分析

這里的參數(shù)除了寫法不同,其實(shí)是功能是一樣的:

.box{      box-align: start | end | center | baseline | stretch;      /*交叉軸對(duì)齊:頂部對(duì)齊(默認(rèn)) | 底部對(duì)齊 | 居中對(duì)齊 | 文本基線對(duì)齊 | 上下對(duì)齊并鋪滿*/         align-items: flex-start | flex-end | center | baseline | stretch;      /*交叉軸對(duì)齊方式:頂部對(duì)齊(默認(rèn)) | 底部對(duì)齊 | 居中對(duì)齊 | 上下對(duì)齊并鋪滿 | 文本基線對(duì)齊*/  }

子元素的顯示方向

子元素的顯示方向可通過(guò) box-direction + box-orient + flex-direction 實(shí)現(xiàn),下面請(qǐng)看實(shí)例:

左到右

box{      -webkit-box-direction: normal;      -webkit-box-orient: horizontal;      -moz-flex-direction: row;      -webkit-flex-direction: row;      flex-direction: row;  }

Flex布局新舊混合寫法分析

右到左

.box{      -webkit-box-pack: end;      -webkit-box-direction: reverse;      -webkit-box-orient: horizontal;      -moz-flex-direction: row-reverse;      -webkit-flex-direction: row-reverse;      flex-direction: row-reverse;  }

這里補(bǔ)充說(shuō)明一點(diǎn): box 寫法的 box-direction 只是改變了子元素的排序,并沒(méi)有改變對(duì)齊方式,需要新增一個(gè) box-pack  來(lái)改變對(duì)齊方式。

Flex布局新舊混合寫法分析

上到下

.box{      -webkit-box-direction: normal;      -webkit-box-orient: vertical;      -moz-flex-direction: column;      -webkit-flex-direction: column;      flex-direction: column;  }

Flex布局新舊混合寫法分析

下到上

.box{      -webkit-box-pack: end;      -webkit-box-direction: reverse;      -webkit-box-orient: vertical;      -moz-flex-direction: column-reverse;      -webkit-flex-direction: column-reverse;      flex-direction: column-reverse;  }

Flex布局新舊混合寫法分析

是否允許子元素伸縮

.item{      -webkit-box-flex: 1.0;      -moz-flex-grow: 1;      -webkit-flex-grow: 1;      flex-grow: 1;  }

Flex布局新舊混合寫法分析

.item{      -webkit-box-flex: 1.0;      -moz-flex-shrink: 1;      -webkit-flex-shrink: 1;      flex-shrink: 1;  }

Flex布局新舊混合寫法分析

上面是允許放大,box語(yǔ)法中 box-flex 如果不是0就表示該子元素允許伸縮,而flex是分開(kāi)的,上面 flex-grow  是允許放大(默認(rèn)不允許),下面的 flex-shrink 是允許縮小(默認(rèn)允許)。box-flex  默認(rèn)值為0,也就是說(shuō),在默認(rèn)的情況下,在兩個(gè)瀏覽器中的表現(xiàn)是不一樣的:

Flex布局新舊混合寫法分析

這里還有一點(diǎn),就是新舊語(yǔ)法的算法是不一樣的,假設(shè) box-flex 的值不等于0,舊語(yǔ)法中,如果有多余的空間,box-flex  的值越大,說(shuō)明空白部分的占比越多,反之亦然:

Flex布局新舊混合寫法分析

而新版的語(yǔ)法中,放大的比例是直接按 flex-grow 的值來(lái)分配的,flex-grow 的縮放會(huì)覆蓋 flex-shrink:0,看例子:

Flex布局新舊混合寫法分析

參數(shù):

.item{      box-flex: ;      /*伸縮:<一個(gè)浮點(diǎn)數(shù),默認(rèn)為0.0,即表示不可伸縮,大于0的值可伸縮,柔性相對(duì)>*/         flex-grow: ; /* default 0 */      /*放大:默認(rèn)0(即如果有剩余空間也不放大,值為1則放大,2是1的雙倍大小,以此類推)*/         flex-shrink: ; /* default 1 */      /*縮?。耗J(rèn)1(如果空間不足則會(huì)縮小,值為0不縮?。?/  }

子元素的顯示次序

.item{      -webkit-box-ordinal-group: 1;      -moz-order: 1;      -webkit-order: 1;      order: 1;  }

Flex布局新舊混合寫法分析

到此,相信大家對(duì)“Flex布局新舊混合寫法分析”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


網(wǎng)頁(yè)題目:Flex布局新舊混合寫法分析
新聞來(lái)源:http://weahome.cn/article/psespg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部