首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >css单行或多行垂直对齐

css单行或多行垂直对齐
EN

Stack Overflow用户
提问于 2012-02-08 19:25:32
回答 4查看 90.4K关注 0票数 80

我有一个标题,可以有一行或多行。

如何将文本垂直对齐?如果它总是一行,我可以只将line-height设置为容器高度。

我可以用JavaScript来做,但我真的不喜欢它,我正在寻找一种纯CSS的方式。

此外,如果容器可以随着线条扩展,那将是完美的,这样我就可以在顶部和底部始终有相同的填充。

EN

回答 4

Stack Overflow用户

发布于 2012-02-08 20:36:54

如果你不喜欢display:table技巧(我知道我不喜欢),这里有一个没有它的解决方案:

代码语言:javascript
运行
复制
.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

代码语言:javascript
运行
复制
<div class="cen">
 <p>Text in div 1</p>
</div>

这使div的高度为5em,除非内容更高,否则它会增长。

实况示例here

编辑:哦,这应该在哪种浏览器上运行?IE8不会合作的

(稍后编辑:更新CSS以处理Chrome中的问题)

票数 10
EN

Stack Overflow用户

发布于 2012-02-08 19:38:31

像这样的东西

HTML

代码语言:javascript
运行
复制
<div>
    <p>
       Lorem Ipsum is simply
    </p>
</div>

CSS

代码语言:javascript
运行
复制
div {
   display: table;
}
p {
   display:table-cell;
   vertical-align: middle;
}
票数 3
EN

Stack Overflow用户

发布于 2012-02-08 19:38:54

在样式方面,表格是布局内容的最佳方式(将样式标签放在CSS中):

代码语言:javascript
运行
复制
<table style="border:1;collapse;width:300px;padding:5px;background-color:red;">
<tr>
    <td style="width:250px;vertical-align:middle;">Lorem ipsum dolor sit amet ipswum dolor</td>
    <td style="width:50px;vertical-align:top;color:white;">1 Line</td>
</tr>

行数将需要一个JS脚本,看看这里:

http://www.webdeveloper.com/forum/archive/index.php/t-44333.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9192389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档