搬运总结:flex 弹性布局归纳,解决CSS垂直居中问题

3 篇文章 0 订阅

搬运总结:flex 弹性布局归纳,解决CSS垂直居中问题

本文参考:

  • https://juejin.cn/post/6844903474774147086#heading-1

  • http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool

两篇文章整理而成

推荐一个非常不错的布局课程:

  • https://www.bilibili.com/video/BV1ov411k7sm?p=7&spm_id_from=pageDriver

前言

一些常见,较为普通的布局模式主要依赖display属性+position属性+float属性,但倘若要实现一些特殊的布局,这种传统的布局方式实现起来就不是很方便。比如开发中常遇到的垂直居中布局。但flex布局具有很强的灵活性,任何一个容器都可以指定flex布局,连行内元素也可以使用flex布局。

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

image-20220124163021648

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

✅ 解决开发中垂直居中的问题

#父元素 {
    display: flex;
    justify-content: center; // 定义如何沿着主轴方向(X轴)排列子容器
    align-items: center // 用于定义如何沿着交叉轴(Y轴)方向排列子容器
}

justify-content:设置子容器沿主轴(X轴)方向排列

img
在这里插入图片描述

常用属性:

flex-start:起始端对齐

img

flex-end:末尾段对齐

img

center:居中对齐

img

space-around

子容器沿主轴均匀分布,位于首尾两端的子容器到父容器的距离是子容器间距的一半。

img

space-between

子容器沿主轴均匀分布,位于首尾两端的子容器与父容器贴合。

img

align-items:设置子容器如何沿交叉轴(Y轴)排列

在这里插入图片描述

flex-start:起始端对齐

img

flex-end:末尾段对齐

img

center:居中对齐

img

baseline:基线对齐

image-20220124172936451

img

stretch:拉伸对齐

img

align-content:多行沿交叉轴对齐

align-items是将每一行视为一个整体来处理的,相对于align-items,align-content是将多行视为一个整体来进行对齐的。
在这里插入图片描述

flex-start:起始端对齐

img

flex-end:末尾段对齐

img

center:居中对齐

img

space-around:等边距均匀分布

img

space-between:等间距均匀分布(顶、底贴合父容器)

img

stretch:拉伸对齐

img

如何定义盒子中主轴和交叉轴的方向?

在这里插入图片描述

向右:flex-direction: row (默认值)

image-20220124173428294

向左:flex-direction: row-reverse

image-20220124173451404

向下:flex-direction: column (默认值)

image-20220124173620266

向上:flex-direction: column-reverse

image-20220124173650648

如何定义父容器中的换行方式 flex-wrap

flex-wrap有3个值,分别是nowrapwrapwrap-reverse

nowrap:不换行

img

wrap:换行

img

wrap-reverse:逆序换行

img
在这里插入图片描述

设置子容器的基准大小:flex-basis

flex-basis为容器设置不伸缩(压缩)情况下的默认尺寸。当主轴为横向时代表宽度,主轴为纵向时代表高度。
⚠️ 在主轴为横向时,设置了flex-basis后,width将会失效

image-20220124211445287

设置子容器弹性伸展的比例:flex-grow

如图,在子容器基准大小为300px的情况下,将剩余空间划分为6份,1份分给第一个盒子,2份分给第二个盒子,3份分给第三个盒子

image-20220124212156295

设置子容器弹性收缩的比例:flex-shrink

img

img

设置排列顺序:order

改变子容器的排列顺序,覆盖 HTML 代码中的顺序,默认值为 0,可以为负值,数值越小排列越靠前。

img
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值