CSS3 Flexbox轻松实现元素的水平居中和垂直居中

2023-11-13

网上有很多关于Flex的教程,对于Flex的叫法也不一,有的叫Flexbox,有的叫Flex,其实这两种叫法都没有错,只是Flexbox旧一点,而Flex是刚出来不久的东西而已,为了方便说明,赶上新技术,下面我就把这种布局叫Flex布局。

 

元素居中,相信作为前端工程师的你肯定会经常用到,不管是在水平方向居中,还是垂直方向居中,都可在你的职业生涯中徘徊。不过很多时候要实现垂直居中,还是比较麻烦的。不过你也不用担心,下面就给大家分享下通过Flex布局轻松实现元素在水平、垂直方向上的居中效果。

 

水平居中

水平居中最为简单我们直接来看下代码

 

1.单个元素水平居中

CSS3 Flexbox轻松实现元素的水平居中和垂直居中
CSS3 Flexbox轻松实现元素的水平居中和垂直居中

 

CSS代码

.box{
    display: flex;
    justify-content: center;
    background: #0099cc
}
h1{
    color: #FFF
}

 

HTML代码

<div class="box">
    <h1>flex弹性布局justify-content属性实现元素水平居中</h1>
</div>

 

在这段代码里我们只需要给h1标签的父元素添加两个属性就可以了,justify-content其作用就是 让class类为box的div盒子居中。盒 子居中了,盒子里面的元素就自然居中了,他的好处就是不需要对需居中的元素(h1)设置任何样式,如果:width,margin。

 

2.多个h1元素水平居中

CSS3 Flexbox轻松实现元素的水平居中和垂直居中
CSS3 Flexbox轻松实现元素的水平居中和垂直居中

 

HTML代码

<div class="box">
    <h1>flex弹性布局justify-content属性实现元素水平居中</h1>
    <h1>flex弹性布局justify-content属性实现元素水平居中</h1>
    <h1>flex弹性布局justify-content属性实现元素水平居中</h1>
</div>

 

CSS代码

.box{
    display: flex;
    justify-content: center;
    width: 100%;
    background: #0099cc
}
h1{
    font-size: 1rem;
    padding: 1rem;
    border: 1px dashed #FFF;
    color: #FFF;
    font-weight: normal;
}

 

代码还是相当的整洁的,在Flex布局中,作用对象是子元素与及父元素,所以在这里我们不妨把body当作一个正常的标签使用,虽然很少这样用,但是为了说明body标签也是很接地气的,所以本例中使用了body标签作为box的父元素。

 

现 在我们来分析下代码,在Flex有两个东西,一个是Flex容器(子项目父元素),另一个是子项目(Flex容器子元素)。如果不给.box添加样式, 一个h1标签占一行,也就是页面会显示三行文字“flex弹性布局justify-content属性实现元素水平居中”。如果我们给.box添加了 display: flex;那么三个h1标签就妥妥地在一行里排列了,相当于浮动,只不过他不会因为超出了.box的宽度而换行,他总是会在一行内显示。

 

元素垂直居中

元素垂直居中在开端开发中有时候还是比较麻烦的,但是用了Flex布局后一切就化繁为简!我们还是来看看例子吧!

 

1.单个h1标签垂直居中

CSS3 Flexbox轻松实现元素的水平居中和垂直居中
CSS3 Flexbox轻松实现元素的水平居中和垂直居中

 

HTML代码

<div class="box">
    <h1>flex弹性布局justify-content属性实现元素水平居中</h1>
</div>

 

CSS代码

.box{
    display: flex;
    width: 980px;
    height: 30rem;
    align-items:center;
    background: #0099cc
}
h1{
    font-size: 1rem;
    padding: 1rem;
    border: 1px dashed #FFF;
    color: #FFF
}

 

为了让大家看得清楚,定义了.box的高,蓝色背景;给h1元素添加一个边框。这样,h1元素就乖乖地居中了,不用给h1设置高度,无需绝对定位,没错就这么简单粗暴。

 

2.多个h1标签并排垂直居中

CSS3 Flexbox轻松实现元素的水平居中和垂直居中
CSS3 Flexbox轻松实现元素的水平居中和垂直居中

HTML代码

<div class="box">
    <h1>flex弹性布局justify-content属性实现元素水平居中</h1>
    <h1>flex弹性布局justify-content属性实现元素水平居中</h1>
    <h1>flex弹性布局justify-content属性实现元素水平居中</h1>
</div>

 

CSS代码

.box{
    display: flex;
    width: 980px;
    height: 30rem;
    align-items:center;
    background: #0099cc
}
h1{
    font-size: 1rem;
    padding: 1rem;
    border: 1px dashed #FFF;
    color: #FFF
}

 

上面这个例子除了上HTML代码多了两个h1标签,样式都没变化。有了Flex垂直居中,元素、图片、文字居中问题瞬间化为泡影。

 

注意:div,h1标签只是举例而已,Flex属性也适用于其它标签HTML标签。

如果想父元素水平居中,你只需要给body标签一个属性就OK了。代码如下:

body{
    display: flex;
    justify-content: center;
}

 

为了让大家看到效果,在这里我们把.box的width设置成了960px,背景颜色为#0099CC。

3.多行h1标签垂直居中

 

HTML代码

<div class="box">
    <h1>flex弹性布局justify-content属性实现元素垂直居中</h1>
    <h1>flex弹性布局justify-content属性实现元素垂直居中</h1>
    <h1>flex弹性布局justify-content属性实现元素垂直居中</h1>
    <h1>flex弹性布局justify-content属性实现元素垂直居中</h1>
</div>

 

CSS代码

.box{
    display: flex;
    width: 980px;
    height: 30rem;
    justify-content:center;
    background: #0099cc;
    flex-direction:column
}
h1{
    display: flex;
    justify-content:center;
    font-size: 1rem;
    padding: 1rem;
    border: 1px dashed #FFF;
    color: #FFF
}

 

由于弹性容器.box添加了 display:flex; 属性,子项目默认是水平排列的,所以给.box追加一个 flex-direction:column 属性来让子项目垂直排列。此时垂直方向作为主轴,所以我们可以使用一个 justify-content:center 来让所有子项目在垂直方向上居中。为了让h1标签内的文字也水平居中,我们也给了h1一个dislay:flex;以及 justify-content:center,由于h1是默认的水平排列,所以 justify-content:center 就可以让文字在水平方向上居中。

 

在这里我们只需要注意 justify-content:center 的用法就可以了,它的作用就是定义Flex项目在主轴方向上的对齐方。你也可以在这篇文章《CSS3 Flex 弹性布局用法详解》了解更多。

 

最后我们来一个完整的例子,同时包含水平,垂直居中,我们还是老规矩,来看看例子

CSS3 Flexbox轻松实现元素的水平居中和垂直居中
CSS3 Flexbox轻松实现元素的水平居中和垂直居中

 

HTML代码

<div class="box">
     <h1>flex弹性布局justify-content属性实现元素垂直居中</h1>
    <h1>flex弹性布局justify-content属性实现元素垂直居中</h1>
    <h1>flex弹性布局justify-content属性实现元素垂直居中</h1>
    <h1>flex弹性布局justify-content属性实现元素垂直居中</h1>
</div>

 

CSS代码

body{display: flex;justify-content:center}
.box{
    display: flex;
    width: 980px;
    height: 30rem;
    justify-content:center;
    background: #0099cc;
    flex-direction:column;
    align-items:center;
}
h1{
    display: flex;
    justify-content:center;
    font-size: 1rem;
    padding: 1rem;
    border: 1px dashed #FFF;
    color: #FFF;
    width: 28rem
}

 

代码分析:为了让h1里的文字居中,我们给h1添加了 display:flex; 以及 justify-content:center,同样的为了让h1在.box里垂直居中,我们给.box也加上 display:flex; 以及 justify-content:center 属性。而.box里的align-items:center就 是让h1水平居中的。这个属性的作用是:定义项目在交叉轴上的对齐方式。由于我们使用了 flex-direction:column; 所以垂直方向作为主轴,交叉轴自然就是水平方向了。为让让.box也水平居中,我们同时也定义了body{display:flex;justify- content:center}

PS:代码真实效果与图片显示效果可能会不一样,因为贴出的代码是最简的,给代码配图时,为了达到图片演示效果,所以对代码稍作了修饰。

 

原文:http://yunkus.com/article/css3/286.html

转自:CSS3 Flexbox轻松实现元素的水平居中和垂直居中

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS3 Flexbox轻松实现元素的水平居中和垂直居中 的相关文章

  • 本地项目上传到gitlab上

    1 gitlab上新建项目 2 本地操作 进入到项目目录 打开git操作命令窗口 鼠标右键选择Git Bash Here 1 将git初始化至该目录下 会生成 git配置文件 执行命令 git init 2 将远程的仓库分支来取到本地 执行
  • Qt信号详解

    QAbstractButton clicked 按下松开后执行 pressed 按下后执行 released 松开后执行 clicked bool checked 需要选中checkable属性 每次点击checked的值都会切换 可以使用
  • Linux 下配置JDK 并运行springboot项目进行访问 Tomcat的安装

    前言 记忆 1 步骤 一 JDK安装 我们开发java程序必须要的环境 1 下载JDK rpm 去oralce 官网下载即可 百度jdk即可 2 安装java环境 检测当前系统是否存在java环境 java version 如果有的话就需要

随机推荐

  • 机器学习入门教学——人工智能、机器学习、深度学习

    1 人工智能 人工智能相当于人类的代理人 我们现在所接触到的人工智能基本上都是弱AI 主要作用是正确解释从外部获得的数据 并对这些数据加以学习和利用 以便灵活的实现特定目标和任务 例如 阿尔法狗 智能汽车 简单来说 人工智能使机器像人类一样
  • 后端转前端,该如何快速学习

    后端转前端还是比较容易的 学习难度降低了 多花点时间实操 基本可以接手项目 首先初学者要知道web前端工程师的目前核心技术 主要有HTML5 CSS JavaScript JQuery Ajax等技术 而且想要成为一名优秀的web前端工程师
  • 4月13面试网络工程师实习岗位的感想

    第一个自我介绍 说一下自我介绍吧 面试官一来就叫我自我介绍 这是必须的 然后我就说了一下我叫谁 我现在读大几 学什么专业 然后说一下平时爱听音乐 打球啊 爬山啊 爱看电影 然后说到爱看电影 面试官就笑了 然后就行了 就开始问问题了 聊聊天了
  • zookeeper、dubbo、kafka简单了解

    1 zookeeper如何实现高可用 1 zookeeper 多台构成集群实现高可用 有三种角色群首 leader 追随者 follower 观察者 observer Leader作为整个ZooKeeper集群的主节点 负责响应所有对Zoo
  • 自动化设计-框架介绍

    3 框架介绍 由于软件测试的工作量很大 40 到60 的总开发时间 而又有很大部分适于自动化 因此 测试的改进会对整个开发工作的质量 成本和周期带来非常显著的效果 通过第二部分对Ruby Watir框架的介绍 下面我们正式进入自动化测试框架
  • XSS跨站脚本攻击

    以下是自己的一些见解与总结 若有不足或者错误的地方请各位指出 目录 1 简介 2 XSS攻击的危害包括 3 XSS攻击分类 4 XSS攻击实例分析 5 XSS漏洞修复 1 简介 跨站脚本 cross site script 为了避免与样式c
  • Python~ModuleNotFoundError: No module named ‘pydotplus‘

    错误代码 import pydotplus 错误原因 没有安装pydotplus库 解决方案 安装对应的库 pip install pydotplus 重新导入模块 import pydotplus
  • 获取内网IP地址

    工作中遇到一个需求 要求根据不同场地的IP地址 显示相应的大屏页面 首先要配置一下Chrome浏览器 1 在Chrome浏览器中输入 chrome flags 2 搜索 enable webrtc hide local ips with m
  • 量化交易,关于止损止盈的一点思考

    如何设置止损止盈指标才能达到 使损失基本稳定 让盈利充分攀升 止损位设置 如果当天可以卖出 止损位就是成本 1 X 如x设为5 就是股价跌5 就止损 一般就是5 略多一点损失 略多一点是因为可能需要降价保证抛出和交易成本 如果考虑交易成本
  • webSocket详解:技术原理+前后端实现

    webSocket详解 技术原理 前后端实现 一 webSocket技术原理 1 内容简介 websocket就是通过服务器向客户端推送消息 客户端也可以主动向服务器发送消息 是真正的双向平等对话 是一种长连接 只需要通过一次请求进行初始化
  • IDEA设置

    目录 目录 双击idea时默认不打开最后一次的项目 设置黑色 白色主图 编辑 通过CTRL 鼠标滚轮设置字体大小 自动导入包 显示行号与方法分隔符 打开类多后 在多行显示 文件编码UTF 8设定 打开文件按顺序展示 推荐的插件 双击idea
  • 如何用多线程执行 unittest 测试用例实现方案

    前言 使用python做过自动化测试的小伙伴 想必都知道unittest和pytest这两个单元测试框架 其中unittest是python的官方库 功能相对于pytest来要逊色不少 但是uniitest使用上手简单 也受到的很多的小伙伴
  • 企业应该选择哪种区块链

    随着探索如何把区块链应用在各种场景 许多人就想到 也许不需要全世界的人共同参与 也不需要挖矿 我们只需要用到区块链的可信任 可追溯特性 通过较少节点达到拜占庭将军容错 于是私有链就诞生了 但私有链仍是中心化的 难以维持去中心化的优势 因此又
  • webdriver版本不匹配,重新下载webdriver后不知道应该放在哪个文件夹

    1 从官网上面按照对应的版本下载了对应浏览器的webdriver版本 我的是chrome windows 113开头的版本 2 下载并解压之后发现有很多个webdriver exe的程序 正确步骤是解压后复制exe文件放在原来的文件夹即可
  • Ubuntu根目录文件作用分析

    Ubuntu Linux的文件结构与Windows的文件结构不同 Windows将硬盘分成 等盘 也就是分成这些分区 而Linux操作系统不是把硬盘分 成这样的分区 它有一个根目录 用 表示 一个目录就相当于一个文件夹 根目录就相当于Lin
  • 360周鸿祎:互联网好产品六字法则——刚需、痛点、高频

    如何找到好的产品 它必须满足三个条件 刚需 痛点 高频 6月6号 奇虎360创始人董事长兼CEO周鸿祎走上颠覆式创新研习社的讲台 以他的产品经历 带来移动互联网产品观 干货满满 全程无尿点 课程实录分为上 下两部分 研习社根据演讲整理 未经
  • vue Antd单独隐藏Modal.confirm(this.$confirm方式)对话框的默认ok或cancel按钮

    有时候我们需要单独隐藏Modal对话框的默认确定或取消按钮 设置 footer null 会把两个按钮都隐藏 Antd有提供两个参数用于单独修改确定 取消按钮 对于确定按钮 设置 ok button props style display
  • STM32学习记录——74HC595四位数码管显示

    数模管作为STM32的一个重要外设 由于其成本低 稳定 被用于许多场景中 本篇文章来介绍下四位数码管的使用方法 数码管显示 一 数码管的分类 二 74HC595芯片 串入并出 三 原理图 四 代码主要操作 五 代码分析 1 void HC5
  • PyCharm安装

    lt 一 gt PyCharm安装 下载地址 http www jetbrains com pycharm download section windows professional 表示专业版 community 是社区版 推荐安装社区版
  • CSS3 Flexbox轻松实现元素的水平居中和垂直居中

    网上有很多关于Flex的教程 对于Flex的叫法也不一 有的叫Flexbox 有的叫Flex 其实这两种叫法都没有错 只是Flexbox旧一点 而Flex是刚出来不久的东西而已 为了方便说明 赶上新技术 下面我就把这种布局叫Flex布局 元