Flex布局教程(1)

请注意,本文编写于 185 天前,最后修改于 185 天前,其中某些信息可能已经过时。

作者:阮一峰

CSS Flexbox
CSS Flexbox

一、Flex布局是什么?

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

任何一个容器都可以指定为Flex布局。

.box{
    display:flex;
}

行内元素也可以使用Flex布局。

.box{
    display:inline-flex;
}

Webkit内核的浏览器,必须加上-webkit前缀

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

注意,设为Flex布局以后,子元素的floatclearvertical-align属性将失效。

二、基本概念

采用flex布局的元素,称为flex容器,简称“容器”。它的所有子元素自动成为容器成员,称为flex项目(flex item),简称“项目”。

容器默认存在两根轴,水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end

项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉空间叫做cross size

三、容器的属性

以下6个属性设置在容器上。

  • flex-direction
  • flex-wrap
  • flex-flow
  • justify-content
  • align-items
  • align-content

flex-direction属性

flex-direction属性决定主轴的方向(即项目的排列方向)

.box{
    flex-direction:column-reverse|column|row|row-reverse
}

它可能有4个值。

  • row(默认值):主轴为水平方向,起点在左端。
  • row-reverse:主轴为水平方向,起点在右端
  • column:主轴为垂直方向,起点在上沿。
  • column-reverse:主轴为垂直方向,起点在下沿。

flex-wrap属性

默认情况下,项目都排在一条线上(又在“轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。

.box{
    flex-wrap:nowrap|wrap|wrap-reverse
}

他可能取三个值。

(1)nowrap(默认),不换行。

(2)wrap:换行,第一行在上方。

(3)wrap-reverse:换行,第一行在下面。

Comments

添加新评论