垂直居中具有行高的各种大小的跨度
Vertical centering various sized spans with line-height
我想更深入地了解行高的工作原理,尤其是在固定高度元素内将文本垂直居中。在下面的示例 link 中,您可以看到将 line-height 设置为等于容器的高度将使项目居中,只要所有项目的大小都相同。当您放入两个不同大小的 span 时,较大的一个将居中,而另一个则不会。我无法解释这一点,因为大元素和小元素都是分开工作的。我怎样才能使大跨度和小跨度居中(使用行高)? (为什么首先会发生这种行为?)
.header {
background: grey;
width: 100%;
height: 65px;
}
.big, .small {
line-height: 65px;
}
.big {
font-size: 1.5em;
}
.
<div class="header">
<span class="big">A</span>
<span class="small">B</span>
</div>
<br/>
<div class="header">
<span class="small">A</span>
<span class="small">B</span>
</div>
<br/>
<div class="header">
<span class="big">A</span>
<span class="big">B</span>
</div>
发生这种情况是因为默认垂直对齐是基线。如果将其切换为 vertical-align:middle 你会得到预期的行为。
编辑澄清:
由于 span 是内联元素,因此无论您使用的字体大小如何,它们都共享相同的基线。文本的垂直对齐最初是基线,但通过将其设置为中间,您可以强制这些内联元素垂直居中对齐。
有关垂直对齐的更多信息,请点击此处:https://developer.mozilla.org/en/docs/Web/CSS/vertical-align
你需要 vertical-align: middle;
。默认值为基线。
.big, .small {
line-height: 150px;
vertical-align: middle;
}
我想更深入地了解行高的工作原理,尤其是在固定高度元素内将文本垂直居中。在下面的示例 link 中,您可以看到将 line-height 设置为等于容器的高度将使项目居中,只要所有项目的大小都相同。当您放入两个不同大小的 span 时,较大的一个将居中,而另一个则不会。我无法解释这一点,因为大元素和小元素都是分开工作的。我怎样才能使大跨度和小跨度居中(使用行高)? (为什么首先会发生这种行为?)
.header {
background: grey;
width: 100%;
height: 65px;
}
.big, .small {
line-height: 65px;
}
.big {
font-size: 1.5em;
}
.
<div class="header">
<span class="big">A</span>
<span class="small">B</span>
</div>
<br/>
<div class="header">
<span class="small">A</span>
<span class="small">B</span>
</div>
<br/>
<div class="header">
<span class="big">A</span>
<span class="big">B</span>
</div>
发生这种情况是因为默认垂直对齐是基线。如果将其切换为 vertical-align:middle 你会得到预期的行为。
编辑澄清: 由于 span 是内联元素,因此无论您使用的字体大小如何,它们都共享相同的基线。文本的垂直对齐最初是基线,但通过将其设置为中间,您可以强制这些内联元素垂直居中对齐。
有关垂直对齐的更多信息,请点击此处:https://developer.mozilla.org/en/docs/Web/CSS/vertical-align
你需要 vertical-align: middle;
。默认值为基线。
.big, .small {
line-height: 150px;
vertical-align: middle;
}