我知道要将文本垂直对齐到块的中间,您可以将line-height设置为与块相同的高度。
但是,如果我的句子中间有一个单词,那就是2em
。如果整个句子的行高与包含块的高度相同,则较大的文本在垂直方向上对齐,但是较小的文本与较大的文本在同一基线上。
如何设置它以便两个文本的大小都垂直对齐,以便较大的文本位于比较小的文本低的基线上?
Answers:
尝试vertical-align:middle;
内联容器?
编辑:它可以工作,但您的所有文本必须在嵌入式容器中,如下所示:
<div style="height:100px; line-height:100px; background:#EEE;">
<span style="vertical-align:middle;">test</span>
<span style="font-size:2em; vertical-align:middle;">test</span>
</div>
简单的方法-使用flex:
<div>
abcde
<span>efghai</span>
</div>
<style>
div {
padding: 20px;
background-color: orange;
display: flex;
align-items: center; }
span {
font-size: 1.5em; }
</style>
一种选择是使用表格,其中不同大小的文本位于其自己的单元格中,并在每个单元格上使用align:middle。
它不是很漂亮并且不能在所有情况下都可用,但是它很简单并且可以使用任何文本大小。
这有效
header > span {
margin: 0px 12px 0px 12px;
vertical-align:middle;
}
.responsive-title{
font-size: 12vmin;
line-height: 1em;
}
.responsive-subtitle{
font-size: 6vmin;
line-height: 2em;
}
<header>
<span class="responsive-title">Foo</span>
<span class="responsive-subtitle">Bar</span>
</header>
vertical-align: middle
是table-cell
唯一的!