我有一些垂直文本,我无法在它们的 div 中垂直居中。这是一个例子:http: //jsfiddle.net/hThGb/2657/
查看 3 个 div(2 个橙色和 1 个红色)。div 内的文本不是垂直居中的,导致文本泄漏到 div 之外。
我试过了,vertical-align: middle
但这不会做任何事情。
如何在 div 中垂直居中垂直文本?
我有一些垂直文本,我无法在它们的 div 中垂直居中。这是一个例子:http: //jsfiddle.net/hThGb/2657/
查看 3 个 div(2 个橙色和 1 个红色)。div 内的文本不是垂直居中的,导致文本泄漏到 div 之外。
我试过了,vertical-align: middle
但这不会做任何事情。
如何在 div 中垂直居中垂直文本?
如果您在其中的文本boxes
可以在一行中,则可以使用该line-height
属性将它们垂直对齐。
使用line-height:(height of the container)
有一种方法可以使文本(多行文本)在未知高度容器中垂直居中。
诀窍是使用容器高度为 100% 的伪内容 set display:inline-block
。你的子元素也必须是display:inline-block;
HTML
<div>
<p>texts online line</p>
</div>
<div>
<p>texts will be shown in two lines, lorem ipsum doilor sit amet conse </p>
</div>
<div class="last">
<p>texts will be shown in three lines, lorem ipsum doilor sit amet conse lorem ipsum dolor sit </p>
</div>
CSS
div {
background:#bababa;
padding:10px;
width:260px;
height:100px;
margin:0 0 10px;
}
.last {
height:200px;
}
div > p {
margin:0;
display:inline-block;
vertical-align:middle;
width:100%;
}
div:before {
content:"";
display:inline-block;
height:100%;
vertical-align:middle;
width:0px;
font:0/0 a;
margin-left:-4px;
}
这是如何工作的
display:inline-block
同胞中的所有元素都会对vertical-align
CSS 的属性做出反应;伪元素将占据容器的 100% 高度,其他元素会对此做出反应!因此,您甚至可以在中间或底部或顶部垂直居中。
正如#chat
这里所应用的,现在使用 flexbox 很容易做到这一点。
你可以使用padding
这三个 div