css弹性布局

display:flex是一种弹性布局方式,意思是让盒子保持最大的灵活性,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

1.flex-direction属性

决定项目的方向,默认横向排列

属性值 描述
row 默认值,横向排列
row-reverse 横向排列,但与row相反
column 垂直排列
column-reserve 垂直排列,但与column相反

2.flex-wrap属性

flex-wrap 属性规定flex容器是单行或者多行,同时横轴的方向决定了新行堆叠的方向,默认nowrap

属性值 描述
nowrap 元素不换行,例如,两个div设置宽为100%,但实际却是50%
wrap 元素换行,一个div宽为100%,第二个div就换行了
wrap-reverse 元素换行,但与wrap方向相反

3.flex-flow 属性

flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。

4.align-items属性

子元素在当前行的侧轴上的对齐方式

属性 描述
stretch 默认值
center 中间
flex-start 开头
flex-end 结尾
baseline 位于容器的基线上

5.justify-content属性

元素在横轴上的排列

属性值 描述
flex-start 默认值,位于元素的开头
flex-end 位于元素的结尾
center 位于元素的中心
space-between 所有子元素先两边贴边在平分剩余空间
space-around 位于它本身之前之后的留白之内,并按照比例排列

6.弹性子元素属性

(1).order

设置弹性盒子的子元素排列顺序。
<integer>:用整数值来定义排列顺序,数值小的排在前面。可以为负值,默认为0。

(2).flex-grow属性

<integer>:一个数字,规定项目将相对于其他灵活的项目进行扩展的量。默认值是 0。

(3).flex-shrink属性

<integer>:一个数字,规定项目将相对于其他灵活的项目进行收缩的量。默认值是 1。

(4). flex-basis属性

<integer>:一个长度单位或者一个百分比,规定元素的初始长度。
auto:默认值。长度等于元素的长度。如果该项目未指定长度,则长度将根据内容决定。

(5).flex属性

flex 属性用于设置或检索弹性盒模型对象的子元素如何分配空间。

flex 属性是 flex-grow、flex-shrink 和 flex-basis 属性的简写属性。

(6).align-self属性
属性值 描述
auto 默认值
stretch 元素被拉伸以适应容器
center 元素位于容器之中
flex-start 元素位于容器的开头
flex-end 元素位于容器的末尾
baseline 元素位于容器的基线上
inherit 继承父元素的属性
initial 设置该属性为它的默认值
著:此文有借鉴之处