【发布时间】:2021-12-23 05:21:20
【问题描述】:
我很难理解以下 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 的 line-height 设置为 30px 之类的值,它的行为与预期一样:container 现在是 30px 高。
你能帮我理解为什么container 不是 20px 高吗?还是line-height 在容器包含除纯文本之外的其他元素时就不容易预测?谢谢!
【问题讨论】:
-
因为
vertical-align的默认值(这里适用,因为 SVG 是一个内联元素)是baseline。将其设置为bottom。 -
太好了,谢谢!这正是我所缺少的
标签: html css svg line-height