一、什么是flex?Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提 供最大的灵活性。
注:任何一个容器都可以指定为 Flex 布局。
(1).box{ display: flex; } 行内元素也可以使用 Flex 布局。
(2).box{ display: inline‑flex;} Webkit 内核的浏览器,必须加上‑webkit前缀。
(3).box{ display: ‑webkit‑flex; /* Safari */ display: flex;} 注意,设为 Flex 布局以后,子元素的float、clear和vertical‑align属性将失 效。
二、容器的属性(父)
1.flex‑direction:规定灵活项目的方向
值:
row 默认值。灵活的项目将水平显示,正如一个行一样。
row-reverse与 row 相同,但是以相反的顺序
column 灵活的项目将垂直显示,正如一个列一样
column-reverse与 column 相同,但是以相反的顺序
initial 设置该属性为它的默认值
inherit 从父元素继承该属性。
2.flex‑wrap: 规定flex容器是单行或者多行,同时横轴的方向决定了新行堆叠的方向。
值:
nowrap 默认值。规定灵活的项目不拆行或不拆列
wrap 规定灵活的项目在必要的时候拆行或拆列
wrap-reverse 规定灵活的项目在必要的时候拆行或拆列,但是以相反的顺序
initial 设置该属性为它的默认值。请参阅
inherit 从父元素继承该属性
3.flex‑flow:flex-direction 和 flex-wrap 属性的复合属性。
4.justify‑content:项目在主轴上的对齐方式。
值:
flex-start 默认值。项目位于容器的开头
flex-end 项目位于容器的结尾
center 项目位于容器的中心
space-between 项目位于各行之间留有空白的容器内
space-around 项目位于各行之前、之间、之后都留有空白的容器内
initial 设置该属性为它的默认值
inherit 从父元素继承该属性
5.align‑items :flex子项在flex容器的当前行的侧轴(纵轴)方向上的对齐方式。
值:
stretch 默认值。元素被拉伸以适应容器。如果指定侧轴大小的属性值为'auto',则其值会使项目的边距盒的尺寸尽可能接近所在行的尺寸,但同时会遵照'min/max-width/height'属性的限制。
center :元素位于容器的中心。弹性盒子元素在该行的侧轴(纵轴)上居中放置。(如果该行的尺寸小于弹性盒子元素的尺寸,则会向两个方向溢出相同的长度)。
flex-start 元素位于容器的开头。弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴起始边界。
flex-end 元素位于容器的结尾。弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴结束边界。
baseline 元素位于容器的基线上。如弹性盒子元素的行内轴与侧轴为同一条,则该值与'flex-start'等效。其它情况下,该值将参与基线对齐。
initial 设置该属性为它的默认值
inherit 从父元素继承该属性
6.align‑content:在弹性容器内的各项没有占用交叉轴上所有可用的空间时对齐容器内的各项(垂直)
值:
tretch 默认值。元素被拉伸以适应容器。各行将会伸展以占用剩余的空间。如果剩余的空间是负数,该值等效于'flex-start'。在其它情况下,剩余空间被所有行平分,以扩大它们的侧轴尺寸。
center 元素位于容器的中心。各行向弹性盒容器的中间位置堆叠。各行两两紧靠住同时在弹性盒容器中居中对齐,保持弹性盒容器的侧轴起始内容边界和第一行之间的距离与该容器的侧轴结束内容边界与第最后一行之间的距离相等。(如果剩下的空间是负数,则各行会向两个方向溢出的相等距离。)
flex-start 元素位于容器的开头。各行向弹性盒容器的起始位置堆叠。弹性盒容器中第一行的侧轴起始边界紧靠住该弹性盒容器的侧轴起始边界,之后的每一行都紧靠住前面一行。
flex-end 元素位于容器的结尾。各行向弹性盒容器的结束位置堆叠。弹性盒容器中最后一行的侧轴起结束界紧靠住该弹性盒容器的侧轴结束边界,之后的每一行都紧靠住前面一行。
space-between 元素位于各行之间留有空白的容器内。各行在弹性盒容器中平均分布。如果剩余的空间是负数或弹性盒容器中只有一行,该值等效于'flex-start'。在其它情况下,第一行的侧轴起始边界紧靠住弹性盒容器的侧轴起始内容边界,最后一行的侧轴结束边界紧靠住弹性盒容器的侧轴结束内容边界,剩余的行则按一定方式在弹性盒窗口中排列,以保持两两之间的空间相等。
space-around 元素位于各行之前、之间、之后都留有空白的容器内。各行在弹性盒容器中平均分布,两端保留子元素与子元素之间间距大小的一半。如果剩余的空间是负数或弹性盒容器中只有一行,该值等效于'center'。在其它情况下,各行会按一定方式在弹性盒容器中排列,以保持两两之间的空间相等,同时第一行前面及最后一行后面的空间是其他空间的一半。
initial 设置该属性为它的默认值
inherit 从父元素继承该属性