flex布局

布局传统方案

基于盒模型,以来display+position+float,对于特殊布局非常不方便。

 

Flex是什么?

容器

.box{
  display: flex;
}

行内元素使用弹性盒

.box{
  display: inline-flex;
}

webket内核的浏览器使用

.box{
  display: -webkit-flex; /* Safari */
  display: flex;
}

Flex布局后,子元素的float,clear和vertical-align属性将失效。

 

基本概念

flex父元素称为容器,子元素称为项目。

容器有两根轴,水平主轴(由左到右)和垂直交叉轴(由上到下)。

 

容器的属性

flex-direction  主轴的方向

  row 从左到右

  row-reoverse 从右到左

  column 从上到下

  column-reverse 从下到上

flex-wrap 换行

  nowrap 默认不换行

  wrap 换行

  wrap-reverse 换行,但是第一行在下面

flex-flow flex-direction和flex-wrap的集合

justify-content 主轴上的对齐方式

  flex-start 上对齐

  flex-end 下对齐

  center 中间对齐

  space-between 两端对齐,项目之间的间隔相等,两端靠边

  space-around 项目之间的间隔比项目和边框的间隔大一倍

align-items  交叉轴的对齐方式

  flex-start 左对齐

  flex-end 右对齐

  center 中间对齐

  baseline 基线对齐

  stretch 默认值,项目占满容器的总高度

align-content 多根轴线的对齐方式

  flex-start 与交叉轴的起点对齐

  flex-end 与交叉轴的终点对齐

  center 与交叉轴的中点对齐

  stretch默认值,轴线占满整个交叉轴

  space-between 与交叉轴两端对齐,两端靠边

  space-around 两根轴向之间的距离是轴线距边框的2倍

 

项目属性

order 定义项目排列顺序,越小拍列越靠前

flex-grow 定义项目放大比例,默认是0

flex-shrink 定义项目缩小比例,默认为1

flex-basis 计算主轴是否有剩余空间,默认值为auto

flex flex-grow,flex-shrink和flex-basis的简写

align-self 单个项目不一样的对齐方式

  auto 默认值

  flex-start 上对齐

  flex-end 下对齐

  center 中间对齐

  baseline 基线对齐

  stretch 没有父元素

 

posted @ 2018-05-09 16:11  Daisylcj  阅读(146)  评论(0编辑  收藏  举报