CSS水平垂直居中常见方法总结

2023-11-06

说明:本篇文章只是总结一些方法,例子用到的各个元素属性不做解释,详情请看MDN文档,非常的详尽,例子在chrome浏览器下完全好使,IE这个渣渣
附上链接:https://developer.mozilla.org/zh-CN/
本文出现的错误,请大佬们及时指正,人非圣贤孰能无过,如有更好的方法,也请留言,我及时添加,哈哈!

1、元素水平居中

当然最好使的是:

margin: 0 auto;

居中不好使的原因:
1、元素没有设置宽度,没有宽度怎么居中嘛!
2、设置了宽度依然不好使,你设置的是行内元素吧,行内元素和块元素的区别以及如何将行内元素转换为块元素请看我的另一篇文章!
示例 1:

<div class="box">
    <div class="content">
        哇!居中了
    </div>
</div>

<style type="text/css">
.box {
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    margin: 0 auto;
}
.content {
    background-color: #F00;
    width: 100px;
    height: 100px;
    line-height: 100px;//文字在块内垂直居中
    text-align: center;//文字居中
    margin: 0 auto;
}
</style>

示例1

2、元素水平垂直居中

方案1:position 元素已知宽度
父元素设置为:position: relative;
子元素设置为:position: absolute;
距上50%,据左50%,然后减去元素自身宽度的距离就可以实现
示例 2:

<div class="box">
    <div class="content">
    </div>
</div>

.box {
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    position: relative;
}
.content {
    background-color: #F00;
    width: 100px;
    height: 100px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin: -50px 0 0 -50px;
}

示例2

方案2:position transform 元素未知宽度
如果元素未知宽度,只需将上面例子中的margin: -50px 0 0 -50px;替换为:transform: translate(-50%,-50%);
效果如上!
示例 3:

<div class="box">
    <div class="content">
    </div>
</div>

.box {
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    position: relative;
}
.content {
    background-color: #F00;
    width: 100px;
    height: 100px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
}

示例3

方案3:flex布局
示例 4:

<div class="box">
    <div class="content">
    </div>
</div>

.box {
    background-color: #FF8C00;
    width: 300px;
    height: 300px;
    display: flex;//flex布局
    justify-content: center;//使子项目水平居中
    align-items: center;//使子项目垂直居中
}
.content {
    background-color: #F00;
    width: 100px;
    height: 100px;
}

示例4
方案4:table-cell布局
示例 5:
因为table-cell相当与表格的td,td为行内元素,无法设置宽和高,所以嵌套一层,嵌套一层必须设置display: inline-block;td的背景覆盖了橘黄色,不推荐使用

<div class="box">
    <div class="content">
        <div class="inner">
        </div>
    </div>
</div>

.box {
    background-color: #FF8C00;//橘黄色
    width: 300px;
    height: 300px;
    display: table;
}
.content {
    background-color: #F00;//红色
    display: table-cell;
    vertical-align: middle;//使子元素垂直居中
    text-align: center;//使子元素水平居中
}
.inner {
    background-color: #000;//黑色
    display: inline-block;
    width: 20%;
    height: 20%;
}

示例5

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

CSS水平垂直居中常见方法总结 的相关文章

  • 为什么inline-block元素出现在inline元素的下方?如何让它们出现在同一行?

    我目前正在尝试理解基本的 HTML 和 CSS 概念 并遇到了一个非常奇怪的问题 我有两个元素 一个具有 display inline 另一个具有 display inline block 我正在尝试创建一个列表 类似的东西1 SOME C
  • 在每个打印页上重复水印? JavaScript 或 CSS

    所以 我有这个发票页面 我正在页面后面添加水印 我需要为要打印的每一页重复水印 问题是 我不知道会有多少页 可以有任意数量的页面 我需要在每个页面后面显示水印 这些图像取自 Google Chrome 的打印模式 这是该页面的 html 你
  • 如何在不同页面上使用不同类型的导航栏组件

    我为我们项目的两个不同子系统创建了两个不同的导航栏组件 App js function App return lt gt
  • jquery覆盖加载栏div

    所以我有一个数据表 并且我正在使用 ajax 获取数据 当检索数据时 表中的数据消失并出现一个小的加载圆圈 我希望数据保留 我知道如何做到这一点 并且加载圆圈出现在表格的中心 不一定是垂直的 至少是水平的 以及稍微透明的背景阻挡稍微超出表格
  • 多列定义列表[重复]

    这个问题在这里已经有答案了 我有一个 dl 像这样 dl dt Quantity dd dt Size dd dt Rise dd dt Color dd dd dt dd dt dd dt dd dt dl 该列表是通过 php 动态生成
  • 设置overflow-y可见,而overflow-x为auto,以便内容可以垂直溢出父容器

    我在用着position absolute and position relative如果将其父级悬停在图像上 则在图像上显示文本 文本和图像父 div 所在的容器设置为overflow x auto 使其具有水平滚动条 我想要看起来垂直溢
  • stripe checkout css内容策略错误

    我正在尝试创建一种形式条纹结账 https stripe com docs checkout在我的 Ionic 应用程序中 我创建了一个指令 将表单植入到我的内容视图中 但是当我运行它时 CSS 因违反内容策略而失败 checkout js
  • 使用本机 JavaScript 获取过渡中的 CSS 值

    这个问题之前被问过 但答案使用了 jQuery here https stackoverflow com q 8920934 3186555 因此 我将调整问题以专门询问native解决方案 to 最小化依赖关系 假设您有一个 div 然后
  • 自定义 WP 主题时,我应该将导航栏放在“”标签之前还是之后?

    我正在通过制作子主题来自定义 WP 主题 我将 Bootstrap 中的导航栏放入子主题目录中的 header php 文件中 但是 我不确定在哪里放置导航栏代码 我可以把它都放在前面and之后标记成功 例如 无论我选择哪一个 导航栏都显示
  • 理解 z-index:该元素如何出现在其父级同级元素的前面?

    为什么当我删除时红色 div 位于绿色 div 前面z index from wrapperRed 感觉像z index是沿着链条向上继承的 如果我改变z index将绿色 div 更改为 6 即使删除第一句中描述的行后 它仍保留在红色 d
  • html 电子邮件内的背景图像 css - Gmail 不支持

    我想向我的用户发送如下所示的带有背景图像 css 的 html 正文电子邮件 div style width 500px height 1000px background color black background image none
  • 将鼠标悬停在原点时会触发translateY()

    当您将光标移动到按钮底部时 是否可以无限期地不触发动画 它看起来是这样的 gif https i stack imgur com QwdHW gif and codepen https codepen io jaeyson pen GwwJ
  • 浮动图像周围具有最小列宽的流动文本

    我想要一种方法来防止流动文本列变得太窄 例如 在一列 HTML 文本中 有一个图像浮动到左侧 正如预期的那样 文本沿着图像周围的列的右侧向下流动 但是 如果图像几乎与列一样宽 则文本最终会非常窄 在这种情况下 我希望文本简单地not流过图像
  • CSS 继承、别名和其他很酷的东西

    有一天 我随机浏览网页 发现了一些程序 可以让你编写 CSS 别名和其他很酷的东西 我现在不记得了 举个例子 我记得你可以这样做 myclass background color red greenfont 其中 greenfont 在其他
  • 滚动时的 CSS 背景模糊

    我有固定的背景图像 滚动时我希望图像变得模糊 我知道如何在 css 中进行模糊 但在特定的滚动位置进行 这是一个例子 https medium com good music f160ba9e6c52 https medium com goo
  • 如何使使用 css 调整大小的图像在 IE 中看起来不错?

    当使用 css 宽度 高度或属性宽度 高度缩放图像时 IE6 和 IE7 无法很好地缩放网页中的图像 我不确定它默认使用哪种算法 但这不好 在这些浏览器中缩放时 缩放图像会显示锯齿伪影 幸运的是 有一种方法可以通过简单的 css 规则强制
  • 合并 2 个大型 CSS 文件的有效方法

    我正在寻找一个可以合并 2 个大型 CSS 文件的工具 到目前为止我尝试过的所有方法 例如CSSMerge 都没有成功 其中一些只是随机删除属性 其他人则因 webkit 和 moz 等非标准属性而窒息 并给我错误 我还需要保留每条规则大小
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • 使用 CSS 折叠和展开元素

    我正在尝试构建一个页面 加载时仅可见标题 并且 当用户单击标题时 每个标题下方的表格会在隐藏和显示状态之间切换 我的限制是只能在 CSS 中执行此操作 这是我到目前为止想到的 https jsfiddle net Argoron c1ypx

随机推荐

  • jquery绑定点击事件,随着点击次数的增加,发送的网络请求也累加,该如何避免此种情况?

    今天在用jQuery写项目的时候发现 当我点击部门与地方并来回切换的时候 发送的网络请求也是逐步累加 这样的情况很影响性能 很难通过压力测试 之所以会出现这样的原因是绑定的点击事件不是每点击一次就替换上一次的数据 他是逐步累积的 解决这个方
  • 蜻蜓刷脸支付就算是双胞胎也能轻松辨别

    随着科技的发展 我们进入了一个全新的时代 各类新鲜的行业也涌现 为了跟上人们生活所需 各个行业都要各自完善 更新更适合人们的产品 才能在这个信息的时代存活 我们告别了现金的时代 迎来了移动支付 这使得我们的生活更加的便捷 同样的节省了我们的
  • adb的安装和配置

    下载工具 解压后 进行环境配置 SDK 平台工具版本说明 Android 开发者 Android Developers 将adb exe所在路径 新建到Path中 adb version 可查看adb版本信息即可
  • NumPy 函数手册

    NumPy手册 文章目录 NumPy手册 获取属性 秩 形状 大小 元素数据类型 元素占用空间大小 内存地址 创建数组 创建空数组 创建零数组 创建1数组 创建对角矩阵 创建序列数组 创建概率分布的数组 已有列表 元组创建 切片 索引 切片
  • upload_libs通关教程

    Pass 01 js检查 只能上传jpg png gif js验证 上传php文件被拦截 删除js验证 上传成功 Pass 02 MIME Type验证 文件有MIME Type验证 可以用burpsuit抓包 修改Content Type
  • 【PostgreSQL 数据库技术峰会(成都站)】云原生虚拟数仓 PieCloudDB Database 的架构和关键模块实现...

    2023年6月17日 中国开源软件推进联盟 PostgreSQL 分会在成都举办了数据库技术峰会 此次峰会以 新机遇 新态势 新发展 为主题 结合当下信创热潮 人工智能等产业变革背景 探讨 PostgreSQL 数据库在这些新机遇下的发展前
  • 浏览器播放rtsp视频流:1、开源方案

    浏览器播放rtsp视频流 1 开源方案 文章目录 浏览器播放rtsp视频流 1 开源方案 1 方案一 html5 websocket rtsp proxy 实现视频流直播 1 1 实现原理 1 2 实现步骤 1 3 优缺点 1 4 参考链接
  • LeetCode # 452 投飞镖刺破气球

    在二维空间中有许多球形的气球 对于每个气球 提供的输入是水平方向上 气球直径的开始和结束坐标 由于它是水平的 所以y坐标并不重要 因此只要知道开始和结束的x坐标就足够了 开始坐标总是小于结束坐标 平面内最多存在104个气球 一支弓箭可以沿着
  • 鸿蒙pc系统镜像,鸿蒙系统有pc版么_鸿蒙系统有pc版安装方法

    鸿蒙系统作为华为推出的一款操作系统 它跟其他安卓ios系统还是有很大区别的接 但是华为除了有手机还有电视使用鸿蒙系统之外电脑也是华为手机不可缺少的一款 那鸿蒙系统pc版怎么下载呢 1 鸿蒙系统pc版安装方法 首先在电脑上插入U盘 然后打开制
  • 钉钉内网测试-超简单

    环境 win10 python3 钉钉内网穿透官网 两步实现内网穿透 一 下载穿透工具 穿透工具 11 8M 然后启动 进入命令行 cd windows 64 ding config ding cfg subdomain abcde 808
  • expdp数据泵导出oracle某表带时间查询的写法

    expdp scott tiger orcl directory dump dir dumpfile expdp dmp tables emp query where tjsj to date 2020 03 yyyy mm
  • yolop源码train.py学习

    因为要做一个可行驶区域和车道线的任务 所以选了yolop 看他的刷榜还可以 yolop的算法解读后边找了链接再贴出来 花花花大神的博客 我们先从 tools train py 开始debug train py 结构 import xxx d
  • linux入门之awk和shell变量传递

    一 awk使用shell中的普通变量 方法1 使用引号法 aa hello awk BEGIN print aa 输出 aa awk BEGIN print aa 输出hello awk BEGIN print aa 输出空 aa hell
  • metasploit(MSF)渗透超细解说 -- 小黑渗透工具

    metasploit Framework msf 里带数千个已知的软件漏洞 并保持持续更新 Metasploit可以用来信息收集 漏洞探测 漏洞利用等渗透测试的全流程 采用Ruby语言编写 黑掉整个宇宙的称号 初心 记录msfconsole
  • 比尔·盖茨的传奇

    比尔 盖茨的传奇 传奇人生始自少年 比尔盖茨的编程人生在他十三岁就开始了 他进入了湖畔中学 LakesideSchool 湖畔中学是当时为数不多的拥有计算机 PDP 10 的学校 但是机器使用时间严重受限 因而比尔盖茨和计算机公司达成了协议
  • 黑马程序员Spring视频教程,全面深度讲解spring5底层原理 学习笔记

    介绍 代码仓库地址 https gitee com CandyWall spring source study 跟着黑马满一航老师的spring高级49讲做的学习笔记 本笔记跟视频内容的项目名称和代码略有不同 我将49讲的代码每一讲的代码都
  • (三)获取linux内核的系统信息

    这一章 使用qt来获取linux内核的系统信息并显示到界面上 这里的系统信息包括CPU的使用率 CPU的温度 内存信息以及硬盘信息 CPU温度 NanoPI Fire3的开发团队为系统提供了读取CPU温度的接口 一个设备文件 使用命令查看C
  • Web开发语言简介

    JSP了解的不多EJB JSP开发企业级应用轻量级的有StructAsp net日渐成熟随着Vs2005的发行微软开始大力推行VS开发应用VS2005集成了一整套的应用也达到了微软的一般标准会用鼠标的都能操作数据库制作一个网站 aspVBS
  • 掌上和平精英服务器维护要多久,和平精英身份识别卡时间多久 拾取时间限制介绍...

    和平精英上线队友召回模式之后 相信有大批的玩家涌入新模式 那么大家肯定也都知道识别卡是有时间限制的 如果对手死蹲队友的盒子 我们是很难接近的 快来看看和平精英身份识别卡时间多久吧 队友被筛选之后变成了盒子 在他的盒子里面会有一张身份辨认卡
  • CSS水平垂直居中常见方法总结

    说明 本篇文章只是总结一些方法 例子用到的各个元素属性不做解释 详情请看MDN文档 非常的详尽 例子在chrome浏览器下完全好使 IE这个渣渣 附上链接 https developer mozilla org zh CN 本文出现的错误