css3 flexBox 弹性布局 记录

  在传统的css布局,都是依赖于position,float,dosplay进行。在一些特定的布局的实现上往往很不方便,比如一个元素的垂直居中。鉴于这种关系,2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。

css3 flexBox 弹性布局 记录

首先让我们明白在flex中什么是容器,什么是元素

<div>//容器
   <div></div>//元素
   <span></span>//元素
   <img/>//元素
</div>

在flex容器内的元素,没有块级元素,行内元素的区别,都是flex元素,可以设置高宽,可以看做没有换行符的块级元素

在flex项目容器和元素分别都有一些属性值

容器

flex-direction 决定容器主轴方向

  row

  row-severse

  column

  column-reverse

flex-wrap 决定多个元素排列超过容器最大宽度时,是否换行,如果不换行将会制动缩小,以适应容器

  wrap

  nowrap

  wrap-reverse

flex-flow  flex-direction和flex-wrap的缩写

justify-content 元素在主轴上的对齐方式

  flex-start

  flex-end

  center

  space-between

  space-around

  space-evenly  元素与元素 和 元素与容器边框 平分剩余空间

align-items 元素在交叉轴上的对其方式,默认值为stretch

  flex-start

  flex-end

  center

  baseline 基于项目第一行文字的底部对齐,如果没有设置元素高度,则将元素自适应内容高度

  stretch  如果项目未设置高度或设为auto,将占满整个容器的高度

align-content 元素(多主轴时交叉轴对齐方式,只有一条主轴时无效)

  flex-start

  flex-end

  center

  stretch

  space-between

  space-around

元素

order:0 数值越小排序越靠前 默认为0

flex-grow:0 放大比例,如果还有剩余空间,就将剩余空间分成若干等分,如果有两个元素,一个为1一个为2,那么它们的将分别占据剩余空间的1/3和2/3。默认为0 即存在空余空间也不放大,

flex-shrink:1 属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。值越大,缩小的越多,如果为0不缩小

flex-basis:auto 属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。这个属性基本不用去动,设置成固定大小时和 width、height效果一样

align-self 允许元素有自己的对齐方式,会覆盖掉align-items

  center

  flex-start

  flex-end

  auto

  baseline

  stretch 如果项目未设置高度或设为auto,将占满整个容器的高度

相关推荐