我有一个 <div>
包含文本的元素,我想将这个 <div>
的内容垂直居中对齐。
这是我的 <div>
风格:
#box {
height: 170px;
width: 270px;
background: #000;
font-size: 48px;
color: #FFF;
text-align: center;
}
<div id="box">
Lorem ipsum dolor sit
</div>
实现这一目标的最佳方式是什么?
原文由 Irakli Lekishvili 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以尝试这种基本方法:
不过它只适用于单行文本,因为我们将行的高度设置为与包含的框元素相同的高度。
一种更通用的方法
这是垂直对齐文本的另一种方式。此解决方案适用于单行和多行文本,但它仍然需要一个固定高度的容器:
CSS 只是调整
<div>
的大小,垂直居中对齐<span>
通过设置<span>
<div>
的行高,并使其等于 -- 它的高度---
内联块vertical-align: middle
。然后它将<span>
的行高设置回正常值,因此它的内容将在块内自然流动。模拟表显示
这是另一个选项,它可能不适 用于不支持
display: table
和display: table-cell
的旧浏览器(基本上只是 Internet Explorer 7)。我们使用 CSS 模拟表格行为(因为表格支持垂直对齐),HTML 与第二个示例相同:使用绝对定位
此技术使用绝对定位元素,将顶部、底部、左侧和右侧设置为 0。在 Smashing Magazine 中的一篇文章“ _CSS 中的绝对水平和垂直居中_”中对其进行了更详细的描述。