C3-彈性盒子1
彈性盒子( Flexible Box 或 flexbox)
彈性盒子是 CSS3 的一種新的佈局模式,是一種當頁面需要適應不同的螢幕大小以及裝置型別時確保元素擁有恰當的行為的佈局方式。引入彈性盒佈局模型的目的是提供一種更加有效的方式來對一個容器中的子元素進行排列、對齊和分配空白空間。
彈性盒子的組成(彈性盒子內可包含一個或多個彈性元素):
- 彈性容器(Flex container)
- 彈性子元素(Flex item)
原先我們製作網頁時,經常會遇到一個容器裡巢狀多個div層,為了讓div層橫向排列,在沒有使用彈性盒子之前我們可以用到的方法為:將需要排列的div層轉換成內聯塊元素(display:inline-block),或者浮動( float: left)。
伸縮盒子的優勢:寬度會讓其內容自適應寬度,且兩邊間距不變。不會出現浮動被擠下去的情況。
display:flex/ inline-flex
現在有一個新的方法,給需要橫向排列的父元素設定display:flex
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.boxa{
display: -webkit-flex;
display: flex;
width: 800px;
height: 600px;
border: 1px solid #000000;
}
.box1{
width: 100px;
height: 100px;
background-color: #555555;
margin: 10px 10px;
text-align: center;
line-height: 100px;
}
</style>
</head>
<body>
<div class="boxa">
<div class="box1">a</div>
<div class="box1">b</div>
<div class="box1">c</div>
<div class="box1">d</div>
<div class="box1">e</div>
</div>
</body>
</html>
如果需要修改排列方式:則可給body新增direction:
rtl
(right-to-left)。
flex-direction:屬性指定了彈性子元素在父容器中的位置。
row | 橫向從左到右排列(左對齊),預設的排列方式。 |
---|---|
row-reverse | 反轉橫向排列(右對齊,從後往前排,最後一項排在最前面。 |
column | 縱向排列。 |
column-reverse | 反轉縱向排列,從後往前排,最後一項排在最上面。 |
舉慄:
justify-content:內容對齊(justify-content)屬性應用在彈性容器上,把彈性項沿著彈性容器的主軸線(main axis)對齊(兩端對齊)。
flex-start | 彈性專案向行頭緊挨著填充。這個是預設值。第一個彈性項的main-start外邊距邊線被放置在該行的main-start邊線,而後續彈性項依次平齊擺放。 |
flex-end | 彈性專案向行尾緊挨著填充。第一個彈性項的main-end外邊距邊線被放置在該行的main-end邊線,而後續彈性項依次平齊擺放。 |
center | 彈性專案居中緊挨著填充。(如果剩餘的自由空間是負的,則彈性專案將在兩個方向上同時溢位)。 |
space-between | 彈性專案平均分佈在該行上。如果剩餘空間為負或者只有一個彈性項,則該值等同於flex-start。否則,第1個彈性項的外邊距和行的main-start邊線對齊,而最後1個彈性項的外邊距和行的main-end邊線對齊,然後剩餘的彈性項分佈在該行上,相鄰專案的間隔相等。 |
space-around | 彈性專案平均分佈在該行上,兩邊留有一半的間隔空間。如果剩餘空間為負或者只有一個彈性項,則該值等同於center。否則,彈性專案沿該行分佈,且彼此間隔相等(比如是20px),同時首尾兩邊和彈性容器之間留有一半的間隔(1/2*20px=10px)。 |
效果圖如下:來源於菜鳥教程
align-items :設定或檢索彈性盒子元素在側軸(縱軸)方向上的對齊方式。(不能與justify-content同時出現)
flex-start | 彈性盒子元素的側軸(縱軸)起始位置的邊界緊靠住該行的側軸起始邊界。 |
flex-end | 彈性盒子元素的側軸(縱軸)起始位置的邊界緊靠住該行的側軸結束邊界。 |
center | 彈性盒子元素在該行的側軸(縱軸)上居中放置。(如果該行的尺寸小於彈性盒子元素的尺寸,則會向兩個方向溢位相同的長度)。 |
baseline | 如彈性盒子元素的行內軸與側軸為同一條,則該值與'flex-start'等效。其它情況下,該值將參與基線對齊。 |
stretch | 如果指定側軸大小的屬性值為'auto',則其值會使專案的邊距盒的尺寸儘可能接近所在行的尺寸,但同時會遵照'min/max-width/height'屬性的限制。 |
栗子:stretch(預設值)
flex-start
flex-end
center
baseline
flex-wrap:用於指定彈性盒子的子元素換行方式
nowrap | 預設, 彈性容器為單行。該情況下彈性子項可能會溢位容器。 |
wrap | 彈性容器為多行。該情況下彈性子項溢位的部分會被放置到新行,子項內部會發生斷行(換行)
|
wrap-reverse | -反轉 wrap 排列 |
align-content:用於修改 flex-wrap
屬性的行為。類似於 align-items
, 但它不是設定彈性子元素的對齊,而是設定各個行的對齊。
stretch | 預設。各行將會伸展以佔用剩餘的空間。 |
flex-start | 各行向彈性盒容器的起始位置堆疊。 |
flex-end | 各行向彈性盒容器的結束位置堆疊。 |
center | 各行向彈性盒容器的中間位置堆疊。 |
space-between | 各行在彈性盒容器中平均分佈。 |
space-around | 各行在彈性盒容器中平均分佈,兩端保留子元素與子元素之間間距大小的一半。 |
相關文章
- 彈性盒子flexFlex
- flex 彈性盒子Flex
- 認識彈性盒子flexFlex
- Flex彈性盒子與容器屬性Flex
- CSS 屬性篇(四):Flex彈性盒子CSSFlex
- css3系列之彈性盒子 flexCSSS3Flex
- H5-25 彈性盒子模型(flex box)H5模型Flex
- 父盒子寬度不固定水平居中彈性佈局
- 盒子屬性,及浮動
- 【新彈性盒】
- RocketMQ彈性HAMQ
- css盒子模型的屬性介紹CSS模型
- kubernetes 降本增效標準指南|理解彈性,應用彈性
- 非功能性約束之效能(1)-效能銀彈:快取快取
- Dapr 彈性的策略
- Flutter 全域性彈窗Flutter
- [原始碼解析] PyTorch 分散式之彈性訓練(1) --- 總體思路原始碼PyTorch分散式
- 彈性探索與實踐
- Flex-彈性佈局Flex
- 彈性盒模型Flex指南模型Flex
- display:flex 彈性佈局Flex
- ECS彈性網路卡+彈性公網IP配置最佳實踐之策略路由路由
- 埃森哲:從可靠性到彈性
- Fluid 給資料彈性一雙隱形的翅膀 -- 自定義彈性伸縮UI
- 電視盒子不僅僅是點播,功能細分的電視盒子實用性更強
- CSS:彈性佈局(display:flex)CSSFlex
- flex彈性佈局 垂直居中Flex
- css之彈性佈局(flex)CSSFlex
- 彈性盒模型,flex佈局模型Flex
- JavaScript元素上下彈性運動JavaScript
- 如何實現彈性架構架構
- (1)刷題第一彈
- 埃森哲:正在形成的彈性
- Knative Autoscaler 自定義彈性伸縮
- flex 彈性佈局的基本操作Flex
- 彈性佈局(伸縮佈局)
- 彈性公網IP(Elastic IP,EIP)AST
- CSS3-彈性佈局篇CSSS3