Flex 布局
Flex 布局是什么?
- Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局。
.box{
display: flex;
}
行内元素也可以使用 Flex 布局。
.box{
display: inline-flex;
}
基本概念
采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start
,结束位置叫做main end
;交叉轴的开始位置叫做cross start
,结束位置叫做cross end
。
flex-direction
flex-direction:row
flex容器的主轴被定义为与文本方向相同。 主轴起点和主轴终点与内容方向相同
flex-direction: column;
flex容器的主轴和块轴相同。主轴起点与主轴终点和书写模式的前后点相同
2.png
flex-direction:row-reverse;
表现和row相同,但是置换了主轴起点和主轴终点。反方向
flex-wrap
flex-wrap: nowrap; 默认值 ,不换行
flex-wrap: wrap;
flex 元素 被打断到多个行中。 换行
flex-flow: 属性是 flex-direction 和 flex-wrap 的简写。
justify-content :主轴对齐方式
justify-content: space-between;
在每行上均匀分配弹性元素。相邻元素间距离相同。每行第一个元素与行首对齐,每行最后一个元素与行尾对齐。
justify-content: space-around
在每行上均匀分配弹性元素。相邻元素间距离相同。每行第一个元素到行首的距离和每行最后一个元素到行尾的距离将会是相邻元素之间距离的一半。
justify-content:flex-start
从行首开始排列。每行第一个弹性元素与行首对齐,同时所有后续的弹性元素与前一个对齐。
justify-content:flex-end
从行尾开始排列。每行最后一个弹性元素与行尾对齐,其他元素将与后一个对齐。
justify-content:center
伸缩元素向每行中点排列。每行第一个元素到行首的距离将与每行最后一个元素到行尾的距离相同。
align-items侧轴对齐方式(跟justify-content差不多)
order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。
flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。
flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。
flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。
align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
参考:Flex 布局教程:语法篇 - 阮一峰的网络日志
两个小游戏:
http://flexboxfroggy.com/#zh-cn
http://www.flexboxdefense.com/
网友评论