Css flex 彈性布局

1.容器的屬性

以下6個屬性設置在容器上
flex-direction 項目的排列方向
flex-wrap 換行
flex-flow <排列方向> + <換行>
justify-content 項目在主軸上(橫向)的對齊方式
align-items 項目在交叉軸(垂直方向)上如何對齊
align-content 對齊內容

1.1 flex-direction 方向

決定主軸的方向(即項目的排列方向)居灯。

四個值
1.flex-direction: row(默認); 水平方向從左往右排列 起點在左端
2.flex-direction: row-reverse; 水平方向從右往左排列 起點在右端
3.flex-direction: column;垂直從上到下排列 起點在下沿
4.flex-direction: column-reverse;垂直方向從下到上排列 起點在下沿

1.row


微信圖片_20200916140346.png

2.row-reverse


微信圖片_202009161403461.png

3.column


微信圖片_202009161403462.png

4.column-reverse


微信圖片_202009161403463.png

1.2 flex-wrap 換行

默認情況下香椎,項目都排在一條線(又稱"橫向線")上盖矫。flex-wrap屬性定義森逮,如果一條軸線排不下嚎京,如何換行

三個值
1.flex-wrap:nowrap 不換行(默認)
2.flex-wrap:wrap 換行 第一行在上方
3.flex-wrap:wrap-reverse 第一行在下方 

1.nowrap

微信圖片_202009161418542.png

2.wrap

微信圖片_202009161418541.png

3.wrap-reverse

微信圖片_20200916141854.png

1.3 flex-flow 流動

flex-flow 是 flex-direction 方向 + flex-wrap 換行 的簡寫方式

.box {
  flex-flow: <flex-direction> || <flex-wrap>;
}
flex-flow: row nowrap;(默認值 )

1.4 justify-content 定義了項目在主軸上(橫向)對齊方式

屬性值
六個值
justify-content:flex-start;左對齊(默認)
justify-content:flex-end;右對齊
justify-content:center; 居中
justify-content: space-between; 兩端對齊 項目之間間隔相同
justify-content: space-around 每個項目兩側的間隔相等啃擦,所以項目之間的間隔比項目與邊框的間隔大一倍厨埋。
justify-content: space-evenly 平均分布

1.flex-start


微信圖片_20200916145838.png

2.flex-end


微信圖片_202009161458381.png

3.center


微信圖片_202009161458382.png

4.space-between


微信圖片_202009161458383.png

5.space-around


微信圖片_202009161458384.png

6.space-evenly


微信圖片_20200917102700.png

1.5 align-items 垂直對齊項目

定義了項目在主軸上的垂直對齊方式

align-items: flex-start; 交叉軸的起點對齊
align-items: flex-end;交叉軸的終點對齊
align-items: center;交叉軸的中點對齊
align-items: baseline;項目的第一行文字的基線對齊。
align-items: stretch;(默認值)如果項目沒有設置高度 將和日期對齊

1.flex-start


微信圖片_20200916151644.png

2.flex-end


微信圖片_202009161516441.png

3.center


微信圖片_202009161516442.png

4.baseline


image.png

5.stretch
未設置高度或者高度為auto將屏幕占滿


微信圖片_202009161516444.png

1.6 align-content 屬性定義了多根橫線的對齊方式劫扒。如果項目只有一根橫線檬洞,該屬性不起作用。(也就是需要有多行才能體現(xiàn)行于行之間的距離)

align-content:flex-start:頂部對齊
align-content:flex-end:底部對齊
align-content:center:垂直中間對齊
align-content:space-between:上下貼壁沟饥,中間均勻分布
align-content:space-around:每個元素之間的距離固定添怔,所以元素相交距離為2倍,類似元素為“回”字
align-content:space-evenly:均勻分布闷板,元素及border距離相等
align-content:stretch(默認值):軸線占滿整個交叉軸澎灸。

1.flex-start


微信圖片_20200917101826.png

2.flex-end


微信圖片_202009171018261.png

3.center


微信圖片_20200917101958.png

4.space-between


微信圖片_202009171018262.png

5.space-around


微信圖片_202009171018263.png

6.space-evenly


微信圖片_202009171018264.png

7.stretch(默認值)


微信圖片_202009171018265.png

2.項目的屬性

以下6個屬性設置在項目上院塞。
order 順序
flex-grow 放大比例
flex-shrink 縮小比例
flex-basis 主要成分
flex 彎曲
align-self 對齊自身

2.1 order 順序

.item {
  order: <integer>;
}

屬性定義的數(shù)字越小越靠前 遮晚,默認為0,可設置負數(shù)


微信圖片_20200916164503.png

2.2 flex-grow 放大比例

.item {
  flex-grow: <number>; /* default 0 */
}

flex-grow屬性定義項目的放大比例拦止,默認為0县遣,即如果存在剩余空間,也不放大汹族。


微信圖片_20200916165112.png

如果所有項目的flex-grow屬性都為1萧求,則它們將等分剩余空間(如果有的話)。如果一個項目的flex-grow屬性為2顶瞒,其他項目都為1夸政,則前者占據(jù)的剩余空間將比其他項多一倍。

2.3 flex-shrink 縮小比例

.item {
  flex-shrink: <number>; /* default 1 */
}

flex-shrink屬性定義了項目的縮小比例榴徐,默認為1守问,即如果空間不足,該項目將縮小坑资。
值越大縮小的越厲害


微信圖片_20200916174014.png

如果設置了flex-shrink就不會溢出

2.4 flex-basis屬性 級別比width更高

.item {
  flex-basis: <length> | auto; /* default auto */
}

2.5 flex屬性

放大默認0 縮小默認1 寬度
flex屬性是flex-grow, flex-shrink 和 flex-basis的簡寫耗帕,默認值為0 1 auto。后兩個屬性可選袱贮。

.item {
  flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}

該屬性有兩個快捷值:auto (1 1 auto) 和 none (0 0 auto)仿便。
建議優(yōu)先使用這個屬性,而不是單獨寫三個分離的屬性,因為瀏覽器會推算相關值嗽仪。

2.6 align-self屬性 自身特別的對齊方式

align-self屬性允許單個項目有與其他項目不一樣的對齊方式荒勇,可覆蓋align-items屬性。默認值為auto闻坚,表示繼承父元素的align-items屬性枕屉,如果沒有父元素,則等同于stretch鲤氢。

.item {
 align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
微信圖片_20200916175630.png

該屬性可能取6個值搀擂,除了auto,其他都與align-items屬性完全一致卷玉。

3.以下是 flex 布局的一些應用

<!-- HTML -->
<div className='father'>
        <div className='son'>css</div>
        <div className='son'>flex</div>
        <div className='son'>布局</div>
        <div className='son'>dome</div>
        <div className='son'>梁梁</div>
 </div>

1.水平居中排列


css-flex水平布局.png
/* CSS */
.box{
    display: flex; *
    justify-content: center; *
    align-items: center; *
}
//或
.box{
    display: flex;// 或inline-flex
    justify-content: center;
    .son{
        align-self: center;
    }
}
//或
.box{
    display: flex;
    place-content: center;
    .son{
        align-self: center;
    }
}
//或
.box{
    display: flex;
    place-content: center;
    place-items: center;
}

2.水平居中垂直排列 多個元素


css-flex水平垂直布局.png
.box{
    display: flex; *
    justify-content: center; *
    align-items: center; *
    flex-direction: column;* 跟水平居中排列代碼相同 只需要改變方向
}

屬性等價關系

.main{
    place-content: center;

    place-items: center;
}
//等價于
.main{
    align-content: center;
    justify-content: center;

    align-items: center;
    justify-items: center;
}
//多行  垂直水平居中
.main{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

如果只有一個Flex項目時 可以設置margin:auto中水平垂直居中


css-flex-margin.png
.father{
    display: flex;// 或 inline-flex
    .son{
        margin: auto;
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末哨颂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子相种,更是在濱河造成了極大的恐慌威恼,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寝并,死亡現(xiàn)場離奇詭異箫措,居然都是意外死亡,警方通過查閱死者的電腦和手機衬潦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門斤蔓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人镀岛,你說我怎么就攤上這事弦牡。” “怎么了漂羊?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵驾锰,是天一觀的道長。 經(jīng)常有香客問我走越,道長椭豫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任旨指,我火速辦了婚禮赏酥,結果婚禮上,老公的妹妹穿的比我還像新娘淤毛。我一直安慰自己今缚,他們只是感情好,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布低淡。 她就那樣靜靜地躺著姓言,像睡著了一般瞬项。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上何荚,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天囱淋,我揣著相機與錄音,去河邊找鬼餐塘。 笑死妥衣,一個胖子當著我的面吹牛,可吹牛的內容都是我干的戒傻。 我是一名探鬼主播税手,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼需纳!你這毒婦竟也來了芦倒?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤不翩,失蹤者是張志新(化名)和其女友劉穎兵扬,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體口蝠,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡器钟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了妙蔗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片傲霸。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖灭必,靈堂內的尸體忽然破棺而出狞谱,到底是詐尸還是另有隱情乃摹,我是刑警寧澤禁漓,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站孵睬,受9級特大地震影響播歼,放射性物質發(fā)生泄漏。R本人自食惡果不足惜掰读,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一秘狞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蹈集,春花似錦烁试、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽靖诗。三九已至,卻和暖如春支示,著一層夾襖步出監(jiān)牢的瞬間刊橘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工颂鸿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留促绵,地道東北人。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓嘴纺,卻偏偏與公主長得像败晴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子栽渴,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355