我正在努力理解以下 css 行为。也许我错过了一些重要的事情,因为这对我来说实际上似乎是一个简单的场景。考虑以下示例:
.container {
background-color: lime;
font-size: 20px;
line-height: 20px;
}
<div class="container">
<svg width="1em" height="1em" viewBox="0 0 24 24" >
<circle cx="12" cy="12" r="10"/>
</svg>
Text
</div>
因为container
已经line-height: 20px
设置,我希望它是 20px 高。如果它只包含文本,至少是这种情况。然而,对于 svg,它突然高 24px,即使 svg 高 20px,正如预期的那样,因为height=1em
. “文本”的高度也为 23 像素,尽管我希望它是 20 像素。
有趣的是,如果我将container
's line-height 设置为 30px 之类的东西,它的行为与预期的一样:container
现在30px
很高。
你能帮我理解为什么container
不是 20px 高吗?或者line-height
一旦容器包含除纯文本之外的其他元素,就不容易预测?谢谢!