詳解CSS中的flex容器與flex屬性

flex container(flex容器 或 彈性容器)
flex容器是flex元素的的父元素。 通過設(shè)置display 屬性的值為flex 或 inline-flex定義。
注舊版本的屬性值:
box:將對(duì)象作為彈性容器顯示。(最老版本)
inline-box:將對(duì)象作為內(nèi)聯(lián)塊級(jí)彈性容器顯示。(最老版本)
flexbox:將對(duì)象作為彈性容器顯示。(過渡版本)
inline-flexbox:將對(duì)象作為內(nèi)聯(lián)塊級(jí)彈性容器顯示。(過渡版本)
flex item(flex子元素 或 彈性子元素)
flex容器的每一個(gè)子元素均為一個(gè)flex子元素。注意:felx容器直接包含的文本變?yōu)槟涿膹椥宰釉亍?/p>
注意:Flexbox布局和原來的布局是2套概念,所以部分css屬性在flex子元素中將不起作用,比如:float, clear , vertical-align , column-*等
軸:
每個(gè)flex子元素沿著主軸(main axis)依次相互排列。交叉軸(cross axis)垂直于主軸。
屬性 flex-direction 定義主軸方向。
屬性 justify-content 定義了flex子元素如何沿著主軸排列。
屬性 align-items 定義了flex子元素如何沿著交叉軸排列。
屬性 align-self 覆蓋父元素的align-items屬性,定義了單獨(dú)的flex子元素如何沿著交叉軸排列。
方向:
flex容器的主軸起點(diǎn)邊緣(main start)、主軸終點(diǎn)邊緣(main end)和 交叉軸起點(diǎn)邊緣(cross start),交叉軸終點(diǎn)邊緣(cross end)為flex子元素排列的起始和結(jié)束位置。它們具體取決于由writing-mode(從左到右、從右到左等等)屬性建立的向量中的主軸和交叉軸位置。
屬性 order 將元素依次分組,并決定誰(shuí)先出現(xiàn)。
屬性 flex-flow 是屬性 flex-direction 和 flex-wrap 的簡(jiǎn)寫,用于排列flex子元素。
行:
flex子元素根據(jù) flex-wrap 屬性控制的側(cè)軸方向(在這個(gè)方向上可以建立垂直的新線),既可以是一行也可以是多行排列。
尺寸:
flex子元素寬高可相應(yīng)地等價(jià)于主尺寸(main size)和交叉尺寸(cross size),它們都分別取決于flex容器的主軸和側(cè)軸。
min-height 和 min-width 屬性的初始值為新增關(guān)鍵字 auto。
屬性 flex 是 flex-basis,flex-grow 和 flex-shrink 的縮寫,代表flex子元素的伸縮性。
flex屬性
flex(彈性容器中項(xiàng)目的長(zhǎng)度)
flex: flex-grow flex-shrink flex-basis/auto/initial/inherit;
flex屬性設(shè)置彈性容器中項(xiàng)目的長(zhǎng)度。
flex屬性是flexGrow、flexSHrink、flexBasis屬性的簡(jiǎn)寫,即:能夠定義3個(gè)屬性的值。
注意:如果元素不是彈性容器,flex屬性將不會(huì)有效果。
flex的值及其說明
值 | 說明 |
---|---|
flex-grow的值 | 彈性容器中相對(duì)拉伸對(duì)象的寬度 |
flex-shrink的值 | 彈性容器中相對(duì)壓縮對(duì)象的寬度 |
flex-basis的值 | 設(shè)定各項(xiàng)目的寬度,可能的值及值得合法單位:
|
auto | 與1 1 auto相同 默認(rèn)值:0 1 auto |
none | 與0 0 auto相同 |
initial | 保持原有屬性的值 |
inherit | 繼承母元素的設(shè)定。 |
默認(rèn)值:0 1 auto 值的繼承:不繼承 JavaScript syntax: object.style.flex="1" |
使用例:

HTML文件
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <style>
- #myD {
- width: 220px;
- height:80px;
- border: 1px solid black;
- display: -webkit-flex; /* Safari */
- display: flex;
- }
- #myD div {
- -webkit-flex: 2; /* Safari 6.1+ */
- -ms-flex: 2; /* IE 10 */
- flex: 2;
- }
- </style>
- </head>
- <body>
- <div id="myD">
- <div style="background-color:coral;">紅色</div>
- <div style="background-color:lightblue;">淺藍(lán)色</div>
- <div style="background-color:lightgreen;">綠色及其他內(nèi)容</div>
- </div>
- </body>
- </html>
相關(guān)文章
幾個(gè)CSS3的flex彈性盒模型布局的簡(jiǎn)單例子演示
這篇文章主要介紹了幾個(gè)CSS3的flex彈性盒模型布局的簡(jiǎn)單例子演示,flex布局是迄今為止最強(qiáng)大的web布局方式,需要的朋友可以參考下2016-05-12基礎(chǔ)的CSS3彈性盒Flexbox布局使用實(shí)例
這篇文章主要介紹了基礎(chǔ)的CSS3彈性盒Flexbox布局使用實(shí)例,文中最后也提到了解決兼容性問題的基本方法,需要的朋友可以參考下2016-04-08- 這篇文章主要介紹了CSS3的Flexbox布局的簡(jiǎn)明入門指南,Flexbox在"布局界"可謂風(fēng)光無(wú)限,近來Facebook開源的React Native也采用Flexbox來布局,需要的朋友可以參考下2016-04-08
- 下面小編就為大家?guī)硪黄钊肫饰鯟SS彈性盒模型flex。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做一個(gè)參考。一起跟隨小編過來看看吧2016-03-29
- 這篇文章主要為大家詳細(xì)介紹了css使用flexbox布局容器內(nèi)多元素水平居中的方法,如何使用flexbox布局多元素水平居中?本文為大家進(jìn)行解答,感興趣的小伙伴們可以參考一下2016-03-17
CSS3 flex布局之快速實(shí)現(xiàn)BorderLayout布局
所謂的布局管理器分為好多種,最常見的有流式布局管理器(FlowLayout)、邊界布局管理器(BorderLayout)和表格布局管理器(GridLayout)。本文給大家介紹CSS3 flex布局之2015-12-03- 這篇文章主要介紹了CSS3的Flexible Boxes詳細(xì)使用教程,Flexible Boxes是布局設(shè)計(jì)中的常用模型,需要的朋友可以參考下2015-07-29
CSS中使用Flexbox來達(dá)到居中效果的實(shí)例
這篇文章主要介紹了CSS中Flexbox來達(dá)到居中效果的實(shí)例,注意一下IE瀏覽器中的兼容問題,需要的朋友可以參考下2015-07-15- 今天剛學(xué)了css3的彈性盒模型,這是一個(gè)可以讓你告別浮動(dòng)、完美實(shí)現(xiàn)垂直水平居中的新特性。本文主要是總結(jié)一下今天所學(xué),有需要的朋友可以參考下2014-10-08
CSS3 Flexbox中flex-shrink屬性的用法示例介紹
當(dāng)flex items的大小超過了flex container時(shí), 各個(gè)flex item的壓縮比例,下面有個(gè)不錯(cuò)的教程,大家可以參考下2013-12-30