将多个 div 对齐一行并将文本垂直和水平居中

2023-12-07

我想对齐几个div's into one line并且center内容垂直 and 水平地.

要垂直对齐的文本可以是单线, or a <p>段落.


显示n个divs 排成一行,有3种方法

  • use display:table;
    此方法支持 IE8 及以上版本,如果您有大量 css 和文本并且divs 对齐

  • use float:left;
    一直以来最喜欢的老式方法,当必须考虑旧浏览器支持、需要时,最推荐使用此方法clear最后浮动浮动

  • use display:inline-block;
    个人从未使用过此方法,我考虑了浮动方法而不是使用此方法

Base CSS

/************Supported by IE8 and above *******************/
 div.table {
    width:100%;        /* important */
    display:table;
    text-align:center;
}
.table-cell {
    display:table-cell;
    vertical-align:middle;
}
/************ Method 2 *******************/
 div.inline {
    width:100%;
    display:inline-block;
    text-align:center;
}
div.inline-div {
    width:32%;
    display:inline-block;
}
/************ Method 3 *******************/
 .float-class {
    width:100%;
    text-align:center;
}
div.floatdiv {
    float:left;
    width:32%;
    border:1px solid black;
}

.clearfloat {
    clear:both;
}

小提琴在 1 个位置显示所有三种方法

垂直居中one line在一个 div 中

又3种方法:
请记住,解决方案必须具有响应能力,因此margin-top:25% or 50%不会起作用!!!

  • line-height
    当父 div 的尺寸已知时,这种方法很有用,那么你可以简单地使用这个技巧line-height:equal to height of parent div

  • position
    想法是使parent定位relative和文本跨度类absolute,然后居中absolute使用类似定位的文本top/bottom

  • display:table-cell
    如果不需要 IE7 及更早版本的支持,强烈推荐,只需使用vertical-align:middle;

Base css

div.fixed-div-height {

    height:200px;
    width:200px;
    text-align:center;
}
div.fixed-div-height span {
    line-height:200px; /* equal to height of the fixed div*/
}


div.unknown-div-height {
    height:100%;
    text-align:center;
    position: relative;
}
div.unknown-div-height > span.unknown-div-margin {
    display:inline-block;
    height:20px;
    position: absolute;
    top: 50%;
    left:0;
    right:0;
}


div.for-ie8-and-above{
    width:100%;
    display:table;
    height:400px;
    text-align:center;
}
div.for-ie8-and-above > div{
    height:400px;
    width:100%;
    display:table-cell;
    vertical-align:middle; /* key here */
}

显示所有三种方法的小提琴

将段落垂直居中
这是棘手的部分

实际上没有可能的方法center a parapgraph whose heightcontainers height除非您进行一些黑客攻击,否则是未知的......在这个答案的末尾引用了 css 技巧中的一个这样的黑客攻击!

最简单,使用:

div.table-cell {
    height:400px; /* can be anything, even in percentage*/
    width:100%;
    display:table-cell;
    vertical-align:middle;   /* key here */
}

小提琴显示剩余 2 种可能的情况

这里发布了另一个解决方案:如何使用 CSS 使文本垂直居中?

IE 破解display:tables : CSS 技巧

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

将多个 div 对齐一行并将文本垂直和水平居中 的相关文章

  • Shift+Enter 按钮用于提交表单

    我想使用 Shift Enter 按钮提交表单 而不是简单地按 Enter 按钮 请帮助我 如果您仍然想这样做 尽管这会带来可用性问题 form keydown function e if e keyCode 13 e shiftKey W
  • ie11 中的 SVG 问题

    我有一个 div 其高度设置为 320 像素 然后它的子元素宽度设置为 100 它的子文件是一个 SVG 文件 我将其宽度设置为容器的 200 在运行良好的 Chrome 和 Firefox 中 我得到了如下所示的漂亮图像 HTML 看起来
  • 对于跨域 XHR 丢弃 cookie 不是更简单吗?

    在进行网络开发时 我一直在与奇怪的限制作斗争 其中之一是 AJAX 请求的同源限制 我问自己 在创建请求时丢弃 cookie 而不是阻止对跨域资源的请求是否会更简单 以避免滥用 AJAX 请求的身份验证凭据 浏览器会话 Cookie 是一种
  • 固定 CSS 导航栏

    我最近解决了困扰我一段时间的 CSS 导航栏问题 现在我遇到了将其固定到顶部的问题 以便当您滚动页面时它会向下滚动 我知道我需要添加的是 Position fixed 但我不知道在哪里添加它 我最近的尝试导致文本被修复 但导航栏的背景却没有
  • CSS3家谱,如何添加妻子

    我正在关注这个guide http thecodeplayer com walkthrough css3 family tree关于如何仅使用 CSS3 制作家谱 但我真的不知道如何结婚 To clarify What the codes
  • HTML Canvas:旋转图像 3D 效果

    我怎样才能旋转图像 例如45度 并挤压图像 假设我有一个完美的方形图像 我可以将它旋转到我想要的任何角度 但我想让旋转后的正方形被压扁 使高度比宽度小 2 3 生成的图像将不是一个完美的旋转正方形 而是一个被压扁的正方形 你知道我怎样才能达
  • 使用 AppleScript 单击 safari 网页按钮

    我想弄清楚如何单击网页中的按钮 例如 点击谷歌网页中的 手气不错 按钮 这是我尝试过的 tell application Safari make new document with properties URL https www goog
  • 录制视频和音频并上传到服务器

    我想为网站添加视频录制功能 我一直在搜索并尝试所有可能的可用解决方案 但还没有任何工作正常 我已经尝试过以下解决方案 WebRTC 我知道使用 WebRTC 我们可以从网络摄像头和麦克风获取流 我发现了很多关于相同内容的文章 但没有一篇解释
  • 差异:查看页面源代码与在 Firebug 中查看

    当我查看页面的页面源时 例如 http my sa ucsb edu public curriculum coursesearch aspx http my sa ucsb edu public curriculum coursesearc
  • 尝试为每一行编写测试用例

    已经编写了跳跃方法的测试用例 但当我看到代码覆盖率报告时 它不会进入onloadend方法seat onloadend 在 createSpyObj 中我调用了 loadend 但它仍然没有进入内部 你们能告诉我如何解决它吗 下面提供我的代
  • Knockout.js:有条件绑定div的title属性

    我的页面上有一个 viewModel 它保存一些设备当前状态概述的数据 到目前为止 除了一个问题之外 一切都运行良好 我需要根据 viewModel 中的另一个值设置 div 元素的 title 属性 我知道您基本上可以像这样设置 titl
  • 带有 HTML 的 UIActivityViewController

    当我将包含 HTML 内容的字符串作为数组元素传递给UIActivityViewController initWithActivityItems方法中 它不会在选定的 共享 控制器中将其呈现为 HTML 而是呈现 HTML 源 即标记而不是
  • HTML5 网站在手机屏幕关闭时运行?

    基本上 我的问题与这个话题 https stackoverflow com questions 15465242 html5 mobile app running while phone screen is off但现在已经是 2018 年
  • Facebook Instant Game - 上传捆绑的 zip 文件会导致 Web 托管出现 SDK 参考错误

    当我尝试上传简单的游戏 应用程序时 我收到一条错误消息 游戏必须通过我们的 CDN 引用我们支持的 SDK 之一 不过我已经给出了 SDK 参考 难道不是这个吗 我也浏览了 facebook 文档的 SDK 参考 但它对我不起作用 有人以前
  • 在表单中重新填充密码字段会产生安全问题吗?

    我想知道当其他字段未验证时是否应该重新填充表单中的 屏蔽的 密码字段 我在网上看到过两种形式 重新填充屏蔽密码字段 清空密码字段 因此用户需要再次输入它 即使它是有效的 你的最佳实践是什么 重新填充密码字段是否表明存在安全漏洞 就可用性而言
  • 如何使用C从http下载文件?

    最近几天我试图弄清楚如何从 URL 下载文件 这是我对套接字的第一个挑战 我用它来了解协议 所以我想在没有 cURL 库的情况下只用 C 语言来完成它 我搜索了很多 现在我可以打印页面的源代码 但我认为这与文件不同 我不必只将接收到的数据从
  • 一种用javascript创建随机噪声背景图像(png)的方法?

    YouTube的新布局添加了我非常喜欢的背景随机噪声 在其他网站上看到了几乎完全相同的效果 所以我计划在我的网页原型中使用相同的技术 或者至少在其中使用这个 技巧 我的工具箱以供将来使用 图片是这样的 取自http g raphaeljs
  • 容器中的等间距 div

    这是我的例子 http jsfiddle net rtCP3 62 http jsfiddle net rtCP3 62 我有 3 个 或更多 div 我想在一个容器中均匀分布 当将 Angular 与 ng repeat 一起使用时 样式
  • Phantomjs page.content 未检索页面内容

    我使用 Phantomjs 来抓取使用 JavaScript 和 Ajax 加载动态内容的网站 我有以下代码 var page require webpage create page onError function msg trace v
  • HTTPS 网站上的 ShareThis 按钮不可点击

    我已将 共享此 按钮添加到我的安全站点 现在单击它们时会产生错误 下面提到了错误 以前有人遇到过这个问题吗 阻止加载混合活动内容 http w sharethis com button buttons js http w sharethis

随机推荐

  • 关联引用是如何实现的?

    我在这里看到了一个非常好的示例 子类 UIButton 添加属性 它是什么 您无法将对象添加到类别 但现在有了这个技巧你就可以了 那么它是什么 它是如何工作的 Objective c 对象已经有一些恒定数量的 ivar 指针 对吗 现在你再
  • 根元素带有 ngRepeat 的指令并替换:true

    有人可以解释以下行为背后的根本原因吗 如果指令具有隔离范围scope 有一个根元素ng repeat AND replace true然后它 破坏 隔离范围 这意味着隔离范围在指令内不可访问 可见 并且指令开始从外部范围接收变量 这是我可以
  • 导入 Geopandas 时遇到的问题

    我正在尝试将 geopandas 从 Anaconda 导入到我的 Jupyter Notebook 中 安装似乎有效 但是当我尝试导入包时出现以下错误 ImportError Traceback most recent call last
  • 如何将 Jersey 与较新版本的 jackson 一起使用

    我正在使用 Jersey 2 23 1 jersey media json jackson 但这与 Jackson 2 5 4 相关 但我需要使用 Jackson 2 6 0 或更新版本 我怎样才能做到这一点 我尝试在我的 pom xml
  • 如何在 jQuery cookie 中存储数组?

    我正在基于此打开一个新线程如何在jquery cookie中存储数组 我正在使用 almog ori 的函数 var cookieList function cookieName When the cookie is saved the i
  • mysql查询-峰值并发呼叫CDR数据

    您好 我需要帮助解决如何根据 MySQL 中存储的 CDR 日期计算一天内有多少个峰值并发呼叫 数据集如下所示 INSERT INTO cdr calldate clid src dst dcontext channel dstchanne
  • jquery jeditable 没有“确定”和“取消”按钮

    我有一个文本区域 可以使用 jeditable 插件进行编辑 但我不需要 确定 和 取消 按钮 相反 我将通过单击远离文本区域 模糊 来保存文本 我已经准备好该代码 但我不知道如何使其工作 只需使用以下设置将其添加到哈希中 onblur s
  • 创建 MultiUserChat 时出现“$XMPPErrorException:XMPPError:禁止 - auth”错误

    我已经使用 Smack Api 4 1 4 成功为 XMPP 创建了登录连接 现在我正在尝试使用创建 MultiUserChat try String myMUCName TestGroup String myMUCService conf
  • 如何拉伸位图以填充图片框

    我需要拉伸各种尺寸的位图来填充图片框 PictureBoxSizeMode StretchImage有点做了我需要的 但无法想出一种方法来使用此方法正确地将文本或线条添加到图像中 下图是将 5x5 像素位图拉伸到 380x150 Pictu
  • 我必须做什么才能使断言不再阻止自动化测试?

    我们自动化运行NUnit在几个虚拟机上使用 hudson jenkins 对我们的 C 项目进行测试 这些虚拟机在某些服务器上大部分运行在无人值守的情况下 测试涉及启动多个交换数据的进程 其中之一是 NUnit 本身 其他进程由单元测试创
  • 绕过 Chrome 的恶意文件警告

    我创建了一个应用程序 其中包含许多 exe文件 我已将它们打包到我的网站上托管的 NSIS 安装程序中 当我尝试下载它时 Chrome 报告它可能是恶意的 起初 我认为这可能是我托管的 URL 站点无法识别 因此我注册了 Amazon S3
  • Java读取文件并将字符串存储到数组中[重复]

    这个问题在这里已经有答案了 可能的重复 将文件内容存储到数组中 我正在编写一个简单的刽子手程序 我在打开文件并将数据存储到数组中时遇到困难 我似乎不知道该怎么做 这是一个学校项目 所以如果逻辑看起来没有必要 就责怪那个人 我有一个文本文件
  • C# 如何存储字符串

    我想了解像 Hello World 这样写入的字符串值存储在哪里或如何存储 例如 示例1 radLabel1 Text Hello radLabel2 Text Hello radLabel3 Text Hello 示例2 string s
  • 客户端如何获取HTTP GET请求传递过来的参数? [复制]

    这个问题在这里已经有答案了 我需要在我的剃刀视图页面中从某些社交服务 API 捕获回调 回调请求通过HTTP GET方法实现 http www contactsimporter com home cshtml 实现回调后 我需要从 HTTP
  • 对向量列表的所有组合应用函数 -R

    我有一个向量列表 我需要将一个函数应用于所有可能的组合并在矩阵中表示结果 我可以使用forr 中的循环效率低下 任何人都可以指出任何其他方法来做到这一点 例如使用 apply 等 代码例如 list lt list c 1 2 c 3 4
  • jsFiddle 中的谷歌地图

    我正在尝试在 jsFiddle 中实现 Google 地图来提出另一个问题 但我看不到地图 http jsfiddle net hashie5 aknYP 我已经在资源中添加了 gmap 脚本 如何在 jsFiddle 中显示地图 func
  • ASP.NET 异步/等待第 2 部分

    我对 ASP NET 上的 async await 的好处有一些变化这个问题 我的理解是异步与并行不是一回事 因此 在 Web 服务器上 我想知道 async await 给 ASP NET 页面带来了多少好处 IIS ASP NET 不是
  • Specflow 场景大纲 - 更改自动生成的测试名称

    我正在使用 Specflow 在 Visual Studio 2019 中编写 BDD 自动化测试 并使用 Nunit3 运行它们 当我用示例表编写场景大纲时 它看起来像 Scenario Outline NP10 New Record D
  • 当主体高度为 100vh 时额外的滚动条

    这是我在网页上设置背景的方法 body height 100vh background linear gradient white tan h1 Heading h1 p Paragraph p 两个问题 向页面添加背景是正确的方法吗 我应
  • 将多个 div 对齐一行并将文本垂直和水平居中

    我想对齐几个div s into one line并且center内容垂直 and 水平地 要垂直对齐的文本可以是单线 or a p 段落 显示n个divs 排成一行 有3种方法 use display table 此方法支持 IE8 及以