元素水平垂直居中的六种方法

2023-10-30

让某个元素在水平和垂直的方向都居中 内容不限于文字,可能会是图片和其他元素

方法一:定位 + margin负值

<style>
  .father {
    width: 400px;
    height: 400px;
    background-color: pink;
    position: relative;
  }

  .son {
    width: 200px;
    height: 200px;
    background-color: aquamarine;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -100px;  /* 子盒子宽度的一半 */
    margin-top: -100px;   /* 子盒子高度的一半 */
  }
</style>
<div class="father">
  <div class="son"></div>
</div>

 方法二:定位 + transform负值

<style>
  .father {
    width: 400px;
    height: 400px;
    background-color: pink;
    position: relative;
  }

  .son {
    width: 200px;
    height: 200px;
    background-color: aquamarine;
    position: absolute;
    left: 50%;
    top: 50%;
       transform: translate(-50%, -50%);
  }
</style>
<div class="father">
  <div class="son"></div>
</div>

 方法三:定位 + margin: auto

<style>
  .father {
    width: 400px;
    height: 400px;
    background-color: pink;
    position: relative;
  }

  .son {
    width: 200px;
    height: 200px;
    background-color: aquamarine;
    position: absolute;
    /* 以下四个属性必须都要写上 */
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    margin: auto;
  }
</style>
<div class="father">
  <div class="son"></div>
</div>

 方法四:flex布局

<style>
  .father {
    width: 400px;
    height: 400px;
    background-color: pink;
    display: flex;
    justify-content: center; /* 主轴居中 */
    align-items: center; /* 侧轴居中 */
  }

  .son {
    width: 200px;
    height: 200px;
    background-color: aquamarine;
  }
</style>
<div class="father">
  <div class="son"></div>
</div>

 方法五:table布局

将父元素设置 display:table-cell 子元素设置 display: inline-block

<style>
  .father {
    width: 400px;
    height: 400px;
    background-color: pink;
    display: table-cell;
    vertical-align: middle;
    text-align: center;
  }

  .son {
    width: 200px;
    height: 200px;
    background-color: aquamarine;
    display: inline-block;
  }
</style>
<div class="father">
  <div class="son"></div>
</div>

 方法六:grid网格布局 

<style>
  .father {
    width: 400px;
    height: 400px;
    background-color: pink;
    display: grid;
    align-items: center;
    justify-content: center;
  }

  .son {
    width: 200px;
    height: 200px;
    background-color: aquamarine;
  }
</style>
<div class="father">
  <div class="son"></div>
</div>

 小结

上述方法不知道元素大小 但仍然可以实现水平垂直居中的有

  • 定位 + transform负值
  • 定位 + margin: auto
  • flex布局
  • table布局
  • grid网格布局

行内元素的居中布局

水平居中

  • text-align: center
  • 父元素 display: flex justify-content: center

垂直居中

  • 单行文本:height = line-height
  • 多行文本:disaply: table-cell; vertical-align: middle

块级元素居中布局

水平居中

  • margin: 0 auto
  • 定位 + left: 50% + transform: translateX(-50%);
  • 定位 + left: 50% + margin-left: 负的自己宽度一半;

垂直居中

  • 定位 + top: 50% + transform: translateY(-50%);
  • 定位 + top: 50% + margin-top: 负的自己宽度一半
  • flex布局 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

元素水平垂直居中的六种方法 的相关文章

  • 将较新版本的 WebKit 嵌入 Android 应用程序

    我正在使用 Web 技术开发 Android 应用程序 CSS 转换 对于应用程序的功能非常重要 因为它们负责滚动和滑动页面 非常缓慢 根据互联网上找到的信息 CSS 过渡不是硬件加速的 除非进行 3 维转换 我发现很多文章说我应该放置 w
  • 在 Chrome 中,应用于包含图像的锚点的轮廓高度不正确

    对于我正在开发的网站 我希望当链接聚焦 悬停 活动时 链接周围会出现虚线轮廓 我希望文本和图像链接发生这种情况 我遇到的问题是 虽然我的代码在 Firefox 和 IE 中运行良好 但在 Chrome 7 0 517 41 中 虚线轮廓与我
  • 这个 CSS 选择器是什么? [类* =“跨度”]

    我在 Twitter Bootstrap 中看到了这个选择器 show grid class span background color eee text align center border radius 3px min height
  • Firefox 忽略背景大小的 css

    尝试使用背景大小 CSS 规则缩小图像 但 Firefox 3 5 似乎会忽略该规则 CSS privatejoker background aqua url styles images home privatejoker png no r
  • iFrame 未扩展至 100% 高度

    我有这个下面的html 我希望 iFrame 能够 100 覆盖屏幕的其余部分 我在高度属性中尝试了 100 和 但不起作用 这是为什么 谢谢 div img height 35 width 84 alt Kucku src Content
  • CSS 中 calc() 的结果是什么

    我们现在已经开始使用calc 在CSS中 用于设置计算结果的宽度 例如 div div div div parent width 100px calcWidth width calc 100 3px height 100px backgro
  • 相对于变换元素的绝对定位元素位置

    我重新创建了我在模板中遇到的问题 有一个nav具有position relative 在 的里面nav有一个div有两个嵌套列表 其中一个列表的位置绝对固定在列表的底部nav 当div对其应用了变换 当 的时候div在绝对和相对定位的元素之
  • 显示带有背景颜色的百分比条

    例如 如果我有一个包含两列和 2 行的表 Col1 Percentage 50 50 70 70 如何用代表 COl1 值的颜色填充百分比列 像这样的东西 您可以使用具有两个紧接着的停止点的线性渐变 percentageFill heigh
  • Google 再营销标签 - iframe 高度问题

    我注意到 Google 的再营销代码会在我的页面底部插入一个 iframe 问题是 iframe 弄乱了我的布局 它的高度为 13 像素 并且在底部留下了空白的白色垂直空间 我尝试用 css 隐藏它 但它在 IE9 中仍然可见 iframe
  • 如何设置旋转元素背面的样式?

    我有一个figure它是可旋转的 通过用户输入任意角度 该旋转明显地使用transition财产 当该元件旋转超过 90 度 90 度时 元件的背面可见 我想对元素的通常隐藏的一面进行与正面不同的设计 但我不确定如何实现这一点 figure
  • 两种颜色边框

    客户想要两种颜色的边框以获得浮雕外观 我可以在一个元素上执行此操作吗 我希望避免堆叠两个具有单独边框的 DOM 元素 是的 使用outline财产 它充当您边界之外的第二个边界 但请注意 它可能会以一种奇怪的方式与边距 填充和阴影进行交互
  • 使用滤镜将css3灰色图像转为蓝色?

    我正在尝试将灰色图像变为更蓝色的色调 真的不知道如何为此设置滤镜或是否可能 该图像只有一种颜色 cacaca 其余部分透明 我正在尝试使用相同的图像进行一些叠加 以便它仅突出显示那些彩色部分而不是透明区域 一直在尝试其中的一些 但没有取得多
  • 在 IE 8 及以下版本中动态添加 @font-face 规则

    我使用 IE stylesheet addRule 方法添加 font face 规则 但是 符号对于该方法的 选择器 参数来说是不允许的字符 因此我收到 无效参数 错误 s addrule font face font family Fo
  • 如何使用 javascript 或 jquery 生成 CSS 路径?

    关于如何生成元素的 CSS 路径有什么建议吗 CSS 路径是识别特定元素所需的 css 选择器的路径 例如 如果我的 html 是 div div class bar ul li 1 li li 2 li li span class sel
  • 使用 CSS 的平行四边形导航背景

    我正在尝试创建此导航菜单 绿色突出显示是活动页面 灰色是悬停状态 我可以使用以下 CSS 制作平行四边形 ul nav li a text decoration none padding 4px 10px border radius 3px
  • CSS 中的像素与像素密度

    我对 HTML 和 CSS 非常陌生 我突然想到 当决定某个东西是 5px 时 比如说 由于像素的物理尺寸取决于密度 所以 5px 在 100 ppi 的屏幕上看起来肯定比在 300 ppi 的屏幕上看起来更大ppi 这是正确的吗 如果是
  • 禁用引导列上的滚动

    我正在尝试禁用引导列上的滚动 这是我的代码 div class container fluid h 100 div class row h 100 div class col 4 h 100 bg dark fixed div div cl
  • 如何重置使用 JavaScript 更改的 CSS 属性?

    我的导航按钮的宽度从 100px 增加到 150px 当鼠标悬停在 nav li hover width 150px 但是使用 javascript 我已经做到了 无论选择哪个选项 宽度都将继续为 150px 当选择每个选项时 它会使其他选
  • 如何将背景图像仅应用于一个反应页面而不是整个应用程序?

    注册页面示例 register background image linear gradient to right ff5722 0 ff9800 100 margin top 150px important div div div div
  • CSS 是否有不等于选择器?

    CSS中有类似 不等于 的东西吗 例如 我有以下代码 input 但对于某些输入 我需要将其作废 我想通过将类 reset 添加到输入标签来做到这一点 例如

随机推荐

  • 为什么要用TSubClassOf

    2019独角兽企业重金招聘Python工程师标准 gt gt gt TSubclassOf 是提供 UClass 类型安全性的模板类 例如您在创建一个投射物类 允许设计者指定伤害类型 您可只创建一个 UClass 类型的 UPROPERTY
  • vsocde vue snippet 设置

    vue snippt 设置 建议下在一个 vetur extensions 1 首先打开 vue json 文件 ctrl p 搜索 vue json 文件 enter File gt preferences gt User sneppts
  • MSBuild入门

    MSBuild是什么 MSBuild全称 Microsoft Build Engine 是用于构建应用程序的平台 您可能不知道它 但是如果您在使用VS做开发 那么一定时时刻刻在使用它 因为是它在背后为你管理生成你的项目文件 当新建一个项目时
  • ARM汇编指令集·带例题

    目录 32位ARM汇编指令集 32位数据操作指令 32位存储器数据传送指令 32位转移指令 其它32位指令 指令具体用法 数据处理指令 MOV指令 ADD指令 SUB指令 MUL指令 CMP指令 ORR逻辑或 BIC指令 转移指令 B指令
  • Maven进阶-配置私服(Nexus 的使用)

    Maven进阶 配置私服 Nexus 的使用 引言 一 Nexus 的下载 二 Nexus 启动服务器 三 首次配置 Nexus 四 新建仓库 五 设置仓库组 六 仓库的 URL 七 Maven 的配置 1 配置 mirror 2 配置 s
  • mysql select into 新表_SELECT INTO 语句数据表全表复制备份

    select into 语句数据表全表复制备份 select into 语句常用于创建表的备份复件或者用于对记录进行存档 sql select into 语法 您可以把所有的列插入新表 select into new table name
  • C++replace_all strip函数

    replace all occurance of t in s to w void replace all std string s std string const t std string const w string size typ
  • python语言需要注意的几点

    keyword kwlist可以打印出python所有关键字 import keyword print keyword kwlist 不需要使用大括号 但必须对齐 if True print Answer print True else p
  • 接口测试的标准和规范性

    一 接口测试测试点 1 要考虑接口的正常调用 1 按照接口定义 传递正确的接口信息 包括地址 方法 传输数据 然后查看接口返回的响应结果是否正确 数据库的数据是否正确 2 传递的请求数据需要覆盖有效类 边界值 3 返回的响应结果的每个字段都
  • Nginx简介及配置文件详解

    一 Nginx简介 Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器 同时支持IMAP POP3 SMTP代理服务 1 Nginx工作原理 Nginx由内核和模块组成 完成工作是通过查找配置文件将客户端请求映射到一个locat
  • TCP 几个字段含义

    1 tcp out of order tcp有问题 2 tcp segment of a reassembled PDU 3 Tcp previous segment lost tcp先前的分片丢失 4 Tcp acked lost seg
  • 双指针简化双for循环系列(一)27.移除元素

    https leetcode cn com problems remove element class Solution public int removeElement int nums int val 快慢指针 int fastInde
  • 输入/选择自动聚焦放大引起的问题

    加一行
  • 执行docker-compose -V报错及升级后报/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28‘ not found问题解决记录

    在试用一个开源项目时需要用到docker compose 执行项目提供的脚本 gt docker up sh Builds re creates starts and attaches to containers for a service
  • C# 文件相关---新建文件、文件另存为、读写文件

    判断文件夹是否存在 using System IO string path D WorkStation if Directory Exists path 文件夹存在 int i 0 新建空文件夹 System IO Directory Cr
  • Unity:异步加载场景资源进度界面

    创建加载界面LoadingScene 用于处理加载进度条 导入NGUI资源包 在Unity3D菜单栏中选中NGUI Open Prefab Toolbar 在Prefab Toolbar窗口中 选中Control Colored Progr
  • 部分选主元 LU 分解,CGETRF in lapack 选主元时调用 ICAMAX

    ICAMAX finds the index of the first element having maximum Re Im 也就是找出一列 complex 类型的数据中 实部的绝对值 虚部的绝对值 最大的那个元素 这样选出来的主元也还
  • 学习记录——关UNet、特征图add、cat、相乘、三个 注意力

    关于UNet网络 这部分有利于将下采样的各个阶段的信息在上采样过程中进行整合 就是在上采样的过程中 结合了各个层次的结构信息 通俗的来讲就是在网络的高层 就是U型的上部分 获取了图形的细节信息 因为这时候图片很大 很多细节可以得以保留 在网
  • Selenium系列教程 - AutoIt命令行参数

    主要内容 一 AutoIt下载安装 二 AutoIt使用 1 识别控件 2 编写脚本 3 生成exe程序 三 通过命令行执行 四 通过Python用os模块调用 Selenium对网页进行UI自动化时经常会遇到Windows弹框 比如上传
  • 元素水平垂直居中的六种方法

    让某个元素在水平和垂直的方向都居中 内容不限于文字 可能会是图片和其他元素 方法一 定位 margin负值