flex弹性布局笔记
學習自菜鳥教程的flex布局筆記
布局的傳統解決方案,基于盒裝模型,依賴 display 屬性 + position 屬性 + float 屬性。它對于那些特殊布局非常不方便,比如,垂直居中就不容易實現。
?
簡介:
W3C提出了一種新的方案—-Flex布局,
是Flexible Box的縮寫,意為”彈性布局”,用來為盒狀模型提供最大的靈活性。可以簡便、完整、響應式地實現各種頁面布局。對瀏覽器的支持性如下圖
?
注意:在css樣式中,當元素設為Flex布局以后,子元素的float、clear和vertical-align屬性將失效。使用必須加上瀏覽器前綴的兼容性寫法,如下
.box{display: -webkit-flex; /* Safari */display: flex; }?
基本概念:
采用Flex布局的元素,稱為Flex容器(flex container),簡稱”容器”。它的所有子元素自動成為容器成員,稱為Flex項目(flex item),簡稱”項目”。
容器默認存在兩根軸:水平的主軸(main axis)和垂直的交叉軸(cross axis)。主軸的開始位置(與邊框的交叉點)叫做main start,結束位置叫做main end;交叉軸的開始位置叫做cross start,結束位置叫做cross end。項目默認沿主軸排列。單個項目占據的主軸空間叫做main size,占據的交叉軸空間叫做cross size
?
flex布局的幾個容器屬性:
1、flex-direction屬性:決定主軸的方向(即項目的排列方向)。有以下值
.box {flex-direction: row | row-reverse | column | column-reverse; }?
2、flex-wrap屬性:定義如果一條軸線排不下,如何換行
.box{flex-wrap: nowrap | wrap | wrap-reverse; }?
?
3、flex-flow屬性:是flex-direction屬性和flex-wrap屬性的簡寫形式,默認值為row nowrap。
.box {flex-flow: <flex-direction> <flex-wrap>; }?
4、justify-content屬性:定義了項目在主軸上的對齊方式。
.box {justify-content: flex-start | flex-end | center | space-between | space-around; }?
5、align-items屬性:定義項目在交叉軸上如何對齊。
.box {align-items: flex-start | flex-end | center | baseline | stretch; }?
6、align-content屬性:定義了多根軸線的對齊方式。如果項目只有一根軸線,該屬性不起作用。
.box {align-content: flex-start | flex-end | center | space-between | space-around | stretch; }?
?
?
flex布局的幾個項目的屬性:
?
1、order屬性:定義項目的排列順序。數值越小,排列越靠前,默認為0。
.item {order: <integer>; }?
2、flex-grow屬性:定義項目的放大比例,默認為0,根據數值按比例分配剩余空間。比如所有項目的flex-grow屬性都為1,則它們將等分剩余空間(如果有的話)。如果一個項目的flex-grow屬性為2,其他項目都為1,則前者占據的剩余空間將比其他項多一倍。
.item {flex-grow: <number>; /* default 0 */ }?
3、flex-shrink屬性:定義了項目的縮小比例,默認為1,根據數值按比例分配剩余空間。比如,所有項目的flex-shrink屬性都為1,當空間不足時,都將等比例縮小。如果一個項目的flex-shrink屬性為0,其他項目都為1,則空間不足時,前者不縮小。
.item {flex-shrink: <number>; /* default 1 */ }?
?
4、flex-basis屬性:定義了在分配多余空間之前,項目占據的主軸空間(main size)。瀏覽器根據這個屬性,計算主軸是否有多余空間。它的默認值為auto,即項目的本來大小。
.item {flex-basis: <length> | auto; /* default auto */ }?
5、flex屬性:是flex-grow, flex-shrink 和 flex-basis的簡寫,默認值為0 1 auto。后兩個屬性可選。
.item {flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] }flex計算可以參考網址詳細了解:https://blog.csdn.net/fengyjch/article/details/79047908
?
6、align-self屬性:允許單個項目有與其他項目不一樣的對齊方式,可覆蓋align-items屬性。默認值為auto,繼承父元素的align-items屬性,如果沒有父元素,則等同于stretch。
.item {align-self: auto | flex-start | flex-end | center | baseline | stretch; }?
總結
以上是生活随笔為你收集整理的flex弹性布局笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】Python+Matpl
- 下一篇: 【Python】Python语言学习:设