前一段时间写我的个人博客时,用到了flex布局这个神奇的东西,顿时惊为天人,还有这么好用的东西,果断上手操作一波,下面是我整理的一些常用语法,以后忘了的时候再来回顾一下,要是能帮助到其他的小伙伴那就再好不过了.
先介绍一下flex
Flex 是Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。 任何一个容器都可以指定为Flex 布局。 Webkit 内核的浏览器,必须加上 -webkit 前缀。使用flex可以灵活的安排你页面上元素的位置.
下面是常用属性:
1,flex-direction 排列方式
row (默认值):主轴为水平方向,起点在左端。
row-reverse :主轴为水平方向,起点在右端。
colum :主轴为垂直方向,起点在上沿。
colum-reverse :主轴为垂直方向,起点在下沿。
2,flex-wrap 默认情况下,项目都排在一条线(又称"轴线")上。flex-wrap属性定义,如果一条轴线排不下,如何换行。
nowrap (默认):不换行。
wrap :换行,第一行在上方。
wrap-inverse :换行,第一行在下方。
3,justify-content 定义如何分配剩余的空白区域
flex-start (默认值):左对齐
flex-end :右对齐
center : 居中
space-between :两端对齐,项目之间的间隔都相等。
space-around :每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
4,align-items 定义项目在交叉轴上如何对齐。
stretch (默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
center :交叉轴的中点对齐。
flex-start :交叉轴的起点对齐。
flex-end :交叉轴的终点对齐。
baseline : 项目的第一行文字的基线对齐。
5,flex-flow flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。
6,align-content align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
flex-start:与交叉轴的起点对齐。
flex-end:与交叉轴的终点对齐。
center:与交叉轴的中点对齐。
space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
stretch(默认值):轴线占满整个交叉轴。
auto:表示继承父元素的align-items属性
1,align-self align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
stretch (默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
center :交叉轴的中点对齐。
flex-start :交叉轴的起点对齐。
flex-end :交叉轴的终点对齐。
baseline : 项目的第一行文字的基线对齐。
2,flex-grow flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
3,flex-shrink flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。
4,flex-basis flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。
5,flex flex属性是flex-grow,flex-shrink和flex-basis的简写,容器的分配比例(推荐使用)
6,order 属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。
有想深入了解的小伙伴可以参考这位大神的文章https://zhuanlan.zhihu.com/p/25303493