【前端基础】CSS布局之——flex弹性盒子-基础篇1

25 阅读2分钟

Flex布局是我们现代前端开发中很常用的一个布局模式,相比于传统的float和block,flex布局更加的智能和便捷,对各种网页的适应性能更强。

CSS的Flex布局为网页设计带来了革命性改进。其核心优势在于能够高效、直观地控制容器内项目的排列、对齐与空间分配。

现在我们有一个元素盒子div,里面装着5个item:

image.png

我们给父元素div的css属性添加display:flex,会发现我们的item元素失去了他的部分块级元素属性(独占一行)。其子元素(称为“Flex项目”)会脱离常规的块级/行内文档流,转而遵循Flex布局的规则。

image.png 现在我们再来看一下Flex布局的规则是什么:在flex布局容器中,Flex项目是是随着容器的主轴和交叉轴进行排列的。我们默认的主轴(justify)方向是从左往右,交叉轴(align)的方向是从下到上垂直于主轴。

核心规则1:主轴的方向起点/终点由容器属性控制

核心规则2:所有Flex项目沿主轴排列

image.png Flex布局的对齐方式分为两种,主轴对齐和交叉轴对齐,两种对齐方式可以共存一同发挥作用。

主轴对齐方式:修改父元素中的justify-content属性

.container {

/* 对齐方式 */

justify-content: flex-start; /* 默认:从主轴起点开始排列 */

justify-content: flex-end; /* 从主轴终点开始排列 */

justify-content: center; /* 居中排列 */

justify-content: space-between; /* 两端对齐,项目间等距 */

justify-content: space-around; /* 每个项目两侧等距 */

justify-content: space-evenly; /* 项目与边框、项目之间完全等距 */

}

比如我现在修改为justify-content: center;,原来盒子的排列就会变成这样

image.png

交叉轴对齐方式:修改父元素中的align-items属性(针对单行):

.container {

/* 对齐方式(针对单行) */

align-items: stretch; /* 默认:拉伸填满容器高度(注意我这里是给盒子添加了margin,不然将会占满容器) */

align-items: flex-start; /* 交叉轴起点对齐(上/左) */

align-items: flex-end; /* 交叉轴终点对齐(下/右) */

align-items: center; /* 交叉轴居中对齐 */

align-items: baseline; /* 基线对齐(文本底部对齐) */

}

现在大家可以尝试变更上面代码片段里的flex属性,来看看效果会变成什么样~