Flex 布局的使用
任何一個容器都可以指定為 Flex 布局。
.box{
display: flex;
//flex作為display的一個屬性使用
}
行內元素也可以使用 Flex 布局。
.box{
display: inline-flex;
}
注意:設為 Flex 布局以后,子元素的float
、clear
和vertical-align
屬性將失效。
基本概念
采用Flex
布局的元素,稱為 Flex 容器(flex container),簡稱”容器”。它的所有子元素自動成為容器成員,稱為 Flex 項目(flex item),簡稱”項目”。
容器默認存在兩根軸:水平的主軸(main axis)和垂直的交叉軸(cross axis)。
主軸的開始位置(與邊框的交叉點)叫做main start,結束位置叫做main end;
交叉軸的開始位置叫做cross start,結束位置叫做cross end。
項目默認沿主軸排列。單個項目占據(jù)的主軸空間叫做main size,占據(jù)的交叉軸空間叫做cross size。
容器的屬性
PS:我將每個屬性效果單獨展示,不混淆。強烈建議讀者自己試一下。
現(xiàn)在我們將以下面代碼為基礎在上面展示:
<div class="box">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
css 樣式
.box {
width: 300px;
height: 300px;
background-color: aquamarine;
display: flex;
}
.box>div{
border: 1px solid black;
}
開始效果
?flex-direction
flex-direction
屬性:決定主軸的方向(即項目的排列方向)
- row(默認值):主軸為水平方向,起點在左端
- row-reverse:主軸為水平方向,起點在右端
- column:主軸為垂直方向,起點在上沿
- column-reverse:主軸為垂直方向,起點在下沿
PS : 其實上面結合我的效果看挺好的,或者結合上面自動動手試一下,加深一下對文字理解。
1.默認不展示
2. flex-direction: row-reverse;
效果展示
3. flex-direction: column;
效果展示
?4. flex-direction: column-reverse;
效果展示
justify-content
justify-content
屬性:項目在主軸上的對齊方式
- flex-start(默認值):左對齊
- flex-end:右對齊
- center: 居中
- space-between:兩端對齊,項目之間的間隔都相等
- space-around:每個項目兩側的間隔相等,項目之間的間隔比項目與邊框的間隔大一倍
1.默認不展示
2.flex-end
?3.center
?4.space-between
?5.space-around
項目之間間隔一樣,項目與容器邊框的間隔為項目之間間隔一半。
?align-items
align-items
屬性:項目在交叉軸(橫軸)上如何對齊
- stretch(默認值):如果項目未設置高度或設為auto,將占滿整個容器的交叉軸走向
- baseline: 項目的第一行文字的基線對齊
- flex-start:交叉軸的起點對齊
- flex-end:交叉軸的終點對齊
- center:交叉軸的中點對齊
1.flex-start?
ps:我這里不小心將項目高度改為50px
項目占滿整個交叉軸走向的效果就消失了。
?2.flex-end
?3.center
?4.baseline
感覺跟flex-start效果差別不大。
項目的屬性
order
order
屬性:項目在主軸的排列順序。數(shù)值越小,排列越靠前。
- 0(默認值)從小到大排列
- -1從大到小排列
假如第三個項目,給與order:1
?flex-grow
flex-grow
屬性:項目在主軸上的放大比例
- 0(默認值),如果存在剩余空間,也不放大
- 如果所有項目的
flex-grow
屬性都為1,則它們將等分剩余空間(如果有的話)。如果一個項目的flex-grow
屬性為2,其他項目都為1,則前者占據(jù)的剩余空間將比其他項多一倍。
flex-shrink
flex-shrink
屬性:項目在主軸上的縮小比例
- 1(默認值),如果所有項目值都為1,當空間不足時,都將等比例縮小
- 0,如果一個項目的屬性為0,其他項目都為1,則空間不足時,前者不縮小
flex-basis
flex-basis
屬性:項目占據(jù)的主軸空間(main size)
- auto(默認值),即項目的本來大小
- css樣式給的大小,項目將占據(jù)固定空間
flex(對比上面3個優(yōu)先)
flex
屬性是flex-grow
,?flex-shrink
?和?flex-basis
的簡寫,默認值為0 1 auto
。后兩個屬性可選。
align-self
align-self
屬性:允許單個項目有與其他項目不一樣的對齊方式,可覆蓋align-items屬性。
- auto(默認值),表示繼承父元素的align-items屬性,如果沒有父元素,則等同于stretch。
-
align-items的其他值-文章來源:http://www.zghlxwxcb.cn/news/detail-624049.html
?參考資料:
?Flex 布局教程:語法篇 - 阮一峰的網絡日志 (ruanyifeng.com)文章來源地址http://www.zghlxwxcb.cn/news/detail-624049.html
到了這里,關于flex 彈性布局的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!