flex 布局小计

271 阅读3分钟

将容器变为弹性盒子

div{
    display:flex;
}

弹性盒子容器属性

flex-direction

这个属性规定了弹性盒子的主轴方向

flex-direction: row | row-reverse | columns | columns-reverse;
分别表示:横向(从左到右) |横向(从右到左)|纵向(从上到下)|纵向(从下到上)

flex-warp

这个属性规定了当元素超出容器时的排列方式

flex-warp: nowarp | warp | warp-reverse;
分别表示:不换行|换行(按照行顺序从上到下排列)|换行(按照航顺序的倒叙从上到下排列)

flex-flow

此属性是 flex-directionflex-warp 的复合属性

flex-flow: <flex-direction> || <flex-warp>;

此属性的默认值是 row nowarp

justify-content

此属性表示容器的空余位置在子元素周围的排列方式

justify-content: flex-start | flex-end | center | space-between | space-around;
分别表示:
    空余区域在最后一个子元素的右侧 | 
    空余区域在第一个子元素的左侧 | 
    空余区域均匀的在子元素的左右两边 | 
    空余区域均匀的出现在子元素之间 | 
    空余区域均匀的出现在子元素之间

align-items

此属性规定了子元素在交叉轴上的排列方式(指定的主轴为横轴时,交叉轴就是纵轴)

align-items: flex-start | flex-end | center | baseline | stretch(默认值);
分别表示:
    交叉轴的起点开始
    交叉轴的终点开始
    居中
    基于文字基线照齐
    如果子元素没有设置高度,则会将其拉伸为父容器的高度

align-content

此属性规定了当有多条轴(也就是多行)时元素在交叉轴上的排列方式

align-content: flex-start | flex-end | center | space-between | space-around | strentch(默认值);
分别表示:
    与交叉轴的起点对齐
    与交叉轴的终点对齐
    与交叉轴的中点对齐
    与交叉轴的两点对齐,空余区域均匀的分布在轴线两侧
    每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍
    轴线占满整个交叉轴

子元素的属性

order

此属性表示元素的位置,值越小,越靠前,默认为 0 (可以用来调整子元素的位置)

order: 整数

flex-grow

此属性表示子元素的放大比例,默认为 0 ,即即使有剩余空间也不放大(如果你想让某些子元素占用剩余空间)

flex-grow: 整数

flex-shrink

此属性表示子元素的缩小比例,默认为 1,即:如果空间不够,所有元素等比缩小,如果有个元素为 0 ,则只这个元素缩小(不允许为负数)

flex-shrink: 整数

flex-basis

此属性表示子元素占据的主轴空间,相当于给这个元素设置了 height/width。默认值是 auto 表示的是元素本身大小

flex-basis:  <length> | auto; /* default auto */

flex

此属性时 flex-growflex-shrinkflex-basis 三个属性的简写方式。默认值是 1 0 auto

flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]

该属性有两个快捷值 auto(1 0 auto)和 none (0 0 auto)

align-self

align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

align-self: flex-start | flex-end | center | baseline | stretch;

参看连接: