2020-05-20 Flex布局一些属性要点(上)——Flex Container篇

77 阅读2分钟
.box{
  display: flex;
}
.box{
  display: inline-flex;
}
.box{
  display: -webkit-flex; /* Safari */
  display: flex;
}

▲设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效

.box称为Flex Container.box的子元素称为Flex Item

容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。(理解成横轴纵轴完事)

项目默认沿主轴排列。


写在Flex Container上的属性有6个(第一个值均为默认值):

1.flex-direction

决定主轴的方向(即项目的排列方向)

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

2.flex-wrap

该属性定义,如果一条轴线排不下,如何换行(默认不换行)

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

3.flex-flow

flex-direction属性和flex-wrap属性的简写形式,默认值为flex-flow: row nowrap

4.justify-content

定义了项目在主轴上的对齐方式

.box {
  justify-content: flex-start | flex-end | center | space-between | space-around;
}

具体对齐方式与轴的方向有关。下面假设主轴为从左到右。

flex-start(默认值):左对齐

flex-end:右对齐

center: 居中

space-between:两端对齐,项目之间的间隔都相等。

space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

5.align-items

定义项目在交叉轴(纵轴)上如何对齐。

.box {
  align-items: flex-start | flex-end | center | baseline | stretch;
}

前三个和 justify-content 的一样

baseline: 项目的第一行文字的基线对齐。

stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

justify-content 和 align-items最主要还是用到 center 这个值(做居中嘛),其他值大概了解下即可。

6.align-content

定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

.box {
  align-content: flex-start | flex-end | center | space-between | space-around | stretch;
}

参考: 阮一峰 Flex 布局教程:语法篇