有效的对一个容器中的子元素进行排列、对齐和分配空白空间。
对浏览器版本要求较高,多用于移动端的响应式设计
flex-direction 顺序指定了弹性子元素在父容器中的位置。
flex-direction的值有:
- row:横向从左到右排列(左对齐),默认的排列方式。
- row-reverse:反转横向排列(右对齐,从后往前排,最后一项排在最前面。
- column:纵向排列。
- column-reverse:反转纵向排列,从后往前排,最后一项排在最上面。
justify-content: (横轴)
- flex-start:弹性项目向行头紧挨着填充。这个是默认值。
- flex-end:弹性项目向行尾紧挨着填充。
- center:弹性项目居中紧挨着填充。(如果剩余的*空间是负的,则弹性项目将在两个方向上同时溢出)。
- space-between:弹性项目平均分布在该行上。
- space-around:弹性项目平均分布在该行上,两边留有一半的间隔空间。
align-items:(纵轴)
- flex-start
- flex-end
- center
- baseline:如弹性盒子元素的行内轴与侧轴为同一条,则该值与'flex-start'等效。其它情况下,该值将参与基线对齐。
- stretch:如果指定侧轴大小的属性值为'auto',则其值会使项目的边距盒的尺寸尽可能接近所在行的尺寸,但同时会遵照'min/max-width/height'属性的限制。
flex-wrap :用于指定弹性盒子的子元素的换行方式
nowrap:默认,弹性容器为单行,(子相可能会溢出容器)
wrap: 弹性容器为多行,溢出部分会被放置到新行
wrap-reverse: 反转排列,(溢出的跑上面了)
algin-content: 用于修改flex-wrap。设置各个行的对齐。
(属性值与 justify-content 完全一样。)
完美的居中:margin: auto;就能使弹性子元素在两轴方向上完全居中。
order:用整数值来定义排列顺序,数值小的排在前面。可以为负值。
flex属性用于指定弹性子元素如何分配空间(flex: inherit ;从父元素继承)
.div1 {flex:2;} 占2/4
.div2 {flex:1;} 1/4
.div3 {flex:1;} 1/4
对 flex的理解,-----青蛙游戏