我有一个标题,可以有一行或多行。
如何将文本垂直对齐?如果它总是一行,我可以只将line-height设置为容器高度。
我可以用JavaScript来做,但我真的不喜欢它,我正在寻找一种纯CSS的方式。
此外,如果容器可以随着线条扩展,那将是完美的,这样我就可以在顶部和底部始终有相同的填充。

发布于 2012-02-08 20:36:54
如果你不喜欢display:table技巧(我知道我不喜欢),这里有一个没有它的解决方案:
.cen {
min-height:5em; width:12em; background:red; margin:1em 0;
}
.cen p {
display:inline-block; vertical-align:middle;
margin:0 0 0 1em; width:10em;
}
.cen::after {
display:inline-block; vertical-align:middle; line-height:5em;
width:0; content:"\00A0"; overflow:hidden;
}使用HTML
<div class="cen">
<p>Text in div 1</p>
</div>这使div的高度为5em,除非内容更高,否则它会增长。
实况示例here。
编辑:哦,这应该在哪种浏览器上运行?IE8不会合作的
(稍后编辑:更新CSS以处理Chrome中的问题)
https://stackoverflow.com/questions/9192389
复制相似问题