Flex布局

在传统的布局方案中,是基于盒模型的,一般使用display+position+float属性,对于一些特殊的布局中,如水平垂直居中就比较麻烦,CSS居中可参考我之前的一篇文章CSS居中

1、Flex布局基本概念

  • Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。

若要设置一个容器为flex布局只需要在其样式加上display: flex就行

Flex布局_第1张图片
flex布局

这里主要注意main axis(水平主轴)和垂直的侧轴(cross axis),中间的三个为flex container容器内的子元素。

2 、容器的属性

  • flex-direction: row | row-reverse | column | column-reverse; // 决定主轴的方向
  • flex-wrap: nowrap | wrap | wrap-reverse //换行
  • flex-flow //上面两者属性综合
  • justify-content: flex-start | flex-end | center | space-between | space-around //项目在主轴上的对齐方式
  • align-items: flex-start | flex-end | center | baseline | stretch; //定义项目在侧轴上如何对齐。
  • align-content //定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

3、项目的属性

  • order: //定义项目的排列顺序。数值越小,排列越靠前,默认为0
  • flex-grow: //定义项目的放大比例,默认为0
  • flex-shrink: /* default 1 */ //flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小
  • flex-basis :/* default auto */ //定义了在分配多余空间之前,项目占据的主轴空间(main size)
  • flex //flex-grow, flex-shrink 和 flex-basis的简写
  • align-self //允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性

参考资料:
http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
http://www.ruanyifeng.com/blog/2015/07/flex-examples.html
MDN Flex

你可能感兴趣的:(Flex布局)