将一个div定义成flex容器,它分为主轴与交叉轴(其中左右边对应主轴的start、end
,上下边对应交叉轴的start、end
)
display:flex
flex-direction: row
flex-direction: row-reverse
注意:由于翻转时主轴的start、end会进行对调,故紧挨着右边界
flex-direction: column;
注意:按列排列时主轴的start、end会变成竖轴,由于翻转时主轴的start、end会进行对调,故紧挨着下边界
flex-direction: column-reverse;
在flex容器中哪怕你的子组件是div(块元素),也都会加上默认宽度(width:max-content)
但是如果你的内容长度超过了页面大小(就是内容跑到显示外面去了),那么它默认长度就会发生改变,变成(width: min-content),它的长度是内容中最长单词的长度
假设父元素宽度500px,子组件自定义宽度50px,那么还有200px空余空间,
如果想平均分配这200px:(为了理解,这里省略了样式修饰)
.bar{
display: flex;/* 将标签变为flex容器 */
width: 500px;
.item{/* 子组件 */
flex-basis: 50px;
}
这个是怎么计算的呢
(50px+ 1y )*5=500px ,得出y=50px的空余空间,故每个元素可以分到50px空余
等分:
flex:1 0px;
默认的:(以组件中最大的行高定义)
align-items: stretch;
统一在交叉轴起点对齐
align-items: flex-start;
统一在交叉轴终点对齐
align-items: flex-end
统一在交叉轴居中对齐
align-items: center;
基于文字的基线对齐
align-items: baseline;
默认主轴对齐方式(以start为起始位置):
justify-content:flex-start;
以end终点对齐:
justify-content:flex-end;
水平居中:
justify-content:center;
我们设置导航栏
:让组件紧挨着左右两边,中间的距离是相等的
justify-content:space-between;
我们设置导航栏
:让组件比较均匀的分布,中间的距离是两边距离的两倍 2:1
justify-content:space-around;
我们设置导航栏
:让组件比较均匀的分布,中间的距离等于两边的距离 1:1
justify-content:space-evenly;
默认不换行:
flex-wrap:nowrap;
换行:
flex-wrap:wrap;
默认:不对齐啥样子,就是啥样子
align-content: normal
从交叉轴start对齐、从交叉轴end对齐
align-content: flex-start;
align-content: flex-end;
竖着看:首尾元素距离是中间元素之间距离的一半 1:2
align-content: space-around
竖着看:首尾元素没有空隙,中间距离平均
align-content: space-between;
竖着看:首尾元素没有空隙,中间距离平均
align-content: space-evenly;