常见属性
-
display
:定义一个元素是否为弹性容器。display: flex
:将元素设置为弹性容器。display: inline-flex
:将元素设置为内联弹性容器。
-
flex-direction
:指定弹性容器的主轴方向。flex-direction: row
:主轴水平,项目从左到右排列。flex-direction: row-reverse
:主轴水平,项目从右到左排列。flex-direction: column
:主轴垂直,项目从上到下排列。flex-direction: column-reverse
:主轴垂直,项目从下到上排列。
-
flex-wrap
:定义项目是否允许自动换行。flex-wrap: nowrap
:不允许自动换行,项目在一行内排列。flex-wrap: wrap
:允许自动换行,项目可以换到下一行。flex-wrap: wrap-reverse
:允许自动换行,项目可以换到下一行,但从下到上排列。
-
justify-content
:控制项目在主轴上的对齐方式。justify-content: flex-start
:项目在主轴起点对齐。justify-content: flex-end
:项目在主轴终点对齐。justify-content: center
:项目在主轴居中对齐。justify-content: space-between
:项目在主轴上平均分布,首尾不留空白。justify-content: space-around
:项目在主轴上平均分布,首尾留有相等的空白。
-
align-items
:控制项目在交叉轴上的对齐方式。align-items: flex-start
:项目在交叉轴起点对齐。align-items: flex-end
:项目在交叉轴终点对齐。align-items: center
:项目在交叉轴居中对齐。align-items: baseline
:项目在基线对齐。align-items: stretch
:项目在交叉轴上拉伸以填充整个容器。
-
align-content
:控制多行项目在交叉轴上的对齐方式(仅当存在多行项目时才起作用)。align-content: flex-start
:多行项目在交叉轴起点对齐。align-content: flex-end
:多行项目在交叉轴终点对齐。align-content: center
:多行项目在交叉轴居中对齐。align-content: space-between
:多行项目在交叉轴上平均分布,首尾不留空白。align-content: space-around
:多行项目在交叉轴上平均分布,首尾留有相等的空白。
-
flex
:控制项目在分配剩余空间时的伸缩能力。flex: none
:项目不伸缩,不占用剩余空间。flex: [positive number]
:项目按照比例分配剩余空间,数值越大分得越多。
-
order
:控制项目的显示顺序,数值越小越靠前。 -
align-self
:覆盖容器的align-items
属性,控制单个项目在交叉轴上的对齐方式。
属性区别
属性 | 描述 | 主要取值 | 主轴 | 交叉轴 |
---|---|---|---|---|
display |
定义元素是否为弹性容器 | flex 、inline-flex |
是 | 是 |
flex-direction |
指定主轴方向 | row 、row-reverse 、column 、column-reverse |
是 | 否 |
flex-wrap |
控制项目是否允许自动换行 | nowrap 、wrap 、wrap-reverse |
是 | 否 |
justify-content |
控制项目在主轴上的对齐方式 | flex-start 、flex-end 、center 、space-between 、space-around |
是 | 否 |
align-items |
控制项目在交叉轴上的对齐方式 | flex-start 、flex-end 、center 、baseline 、stretch |
否 | 是 |
align-content |
控制多行项目在交叉轴上的对齐方式 | flex-start 、flex-end 、center 、space-between 、space-around |
否 | 是 |
flex |
控制项目在分配剩余空间时的伸缩能力 | none 、[positive number] |
是 | 否 |
order |
控制项目的显示顺序 | 整数值 | 是 | 否 |
align-self |
控制单个项目在交叉轴上的对齐方式 | auto 、flex-start 、flex-end 、center 、baseline 、stretch |
否 | 是 |
flex布局例子
<div class="container">
<div class="item item1">1</div>
<div class="item item2">2</div>
<div class="item item3">3</div>
<div class="item item4">4</div>
<div class="item item5">5</div>
</div>
.container {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
flex-wrap: wrap;
align-content: space-between;
height: 300px;
border: 2px solid #333;
background-color: #f0f0f0;
}
.item {
flex: 1;
width: 100px;
height: 100px;
margin: 10px;
text-align: center;
line-height: 100px;
font-size: 20px;
background-color: #3498db;
color: #fff;
border: 2px solid #ccc;
}
.item1 {
order: 3;
align-self: flex-end;
}
.item2 {
order: 2;
flex: 2;
background-color: #e74c3c;
}
.item3 {
order: 1;
flex: 1;
background-color: #27ae60;
}
.item4 {
flex: 0;
background-color: #f1c40f;
}
.item5 {
align-self: center;
background-color: #9b59b6;
}
标签:flex,项目,align,布局,content,主轴,对齐
From: https://www.cnblogs.com/shuangyou99/p/flex-bu-ju.html