背景
flexbox布局方式旨在容器中的元素在排版,对其,剩余空间处理的问题上提供一个高效的解决方式,无论子元素的大小是已知或未知,动态或者静态。flexbox布局的思想就是通过改变子元素的长、宽、顺序来更好的利用容器的空间。
而且,相比于规则的布局方式如block,inline,flexbox布局方式对于子元素的排列方向也是任意的。
注意:flexbox布局更加适合于应用组件或者小尺寸的布局,对于大尺寸布局,grid更加适合。
一、flex容器属性
1.1 display属性
该布局仅仅影响其直接子元素。
.container { display: flex; /* or inline-flex */ }
注意css3的columns属性对于flex容器是没有效果的。
1.2 flex-direction属性
.container { flex-direction: row | row-reverse | column | column-reverse; }
row(默认值):从左到右

1.3 flex-wrap属性
.container{ flex-wrap: nowrap | wrap | wrap-reverse; }
nowrap:该值为默认值,所有的子元素都在一行

1.4 flex-row属性
flex-flow: <‘flex-direction’> || <‘flex-wrap’>
1.5 justify-content属性

flex-end: 子元素紧挨着容器最后摆放
center: 子元素在摆放在容器中间
space-between: 子元素均匀的摆放在容器; 起一个元素在起始位置, 最后一个元素在最末端。
space-around: 子元素均匀的摆在容器中,每个子元素前面的距离都是一样的,但是子元素之间的距离并不是一样,第一个和最后一个到边缘的距离只是为其他两个子元素距离的一半。
space-evenly: 所有的间距都是一样的,包括第一个和最后一个到边缘的距离。
1.6 align-items属性

flex-end: 元素垂直方向从下开始摆放
center: 元素垂直方向居中
baseline: 元素垂直方向以第一个元素文本为基准线摆放
stretch (default): 元素垂直方向拉伸填满容器(min-width/max-width仍然有效)
1.7 align-content属性

flex-end: 底部对齐
center: 居中对齐
space-between: 均匀对齐,第一个元素在顶部,最后一个元素在底部
space-around: 垂直均匀对齐,每个元素的上下都有相同的间距
stretch (default): 元素垂直拉伸填满容器
二 子元素属性
2.1 order属性

.item { order: <integer>; /* default is 0 */ }
2.2 flex-grow属性

.item { flex-grow: <number>; /* default 0 */ }
注意:只是接受非负的数字
2.3 flex-shrink属性
.item { flex-shrink: <number>; /* default 1 */ }
2.4 flex-basis属性
.item { flex-basis: <length> | auto; /* default auto */ }
如果值设置为 0, 包含内容的额外的空间不会考虑在内。 如果设为 auto, 额外的空间是一句flex-grow设置的值来分配的。
2.5 flex属性
.item { flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] }
强烈推荐使用这个flex而不是单独设置各个不同的属性。
2.6 align-self属性
.item { align-self: auto | flex-start | flex-end | center | baseline | stretch; }
注意:float,clear、vertical-align对于flex元素没有作用。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233438.html原文链接:https://javaforall.net