.box{
display: flex;
}
.box{
display: inline-flex;
}
.box{
display: -webkit-flex; /* Safari */
display: flex;
}
▲设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效
▲.box称为Flex Container,.box的子元素称为Flex Item。
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。(理解成横轴纵轴完事)
项目默认沿主轴排列。
写在Flex Container上的属性有6个(第一个值均为默认值):
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属性的简写形式,默认值为flex-flow: row nowrap
4.justify-content
定义了项目在主轴上的对齐方式
.box {
justify-content: flex-start | flex-end | center | space-between | space-around;
}
具体对齐方式与轴的方向有关。下面假设主轴为从左到右。
flex-start(默认值):左对齐
flex-end:右对齐
center: 居中
space-between:两端对齐,项目之间的间隔都相等。
space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
5.align-items
定义项目在交叉轴(纵轴)上如何对齐。
.box {
align-items: flex-start | flex-end | center | baseline | stretch;
}
前三个和 justify-content 的一样
baseline: 项目的第一行文字的基线对齐。
stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
justify-content 和 align-items最主要还是用到 center 这个值(做居中嘛),其他值大概了解下即可。
6.align-content
定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
.box {
align-content: flex-start | flex-end | center | space-between | space-around | stretch;
}
参考: 阮一峰 Flex 布局教程:语法篇