【发布时间】:2016-04-27 13:32:24
【问题描述】:
我的文字没有垂直居中,我的设计师指出了这一点。
但是,我使用正确的 CSS 来实现垂直居中,这不是问题。
问题在于字体本身。字形不在实际文本中居中。选择文本会显示它的边界框,从这里我可以看到文本下方的空间不均匀。
Line-height 似乎无法解决此问题。边界框仍然关闭,即使行高为 0。我可以在元素的顶部添加填充以尝试解决此问题,但这不会在使用此字体的许多元素之间进行扩展。
看起来不均匀的空间是因为下降。这是有道理的,但不幸的是,它并没有让我更接近于弄清楚如何真正垂直居中文本。
有问题的字体是 SouvenirStd-Medium,但我在许多其他网络字体中都注意到了这一点。无论使用哪个元素,它始终处于关闭状态...... h1,段落标签等。
虽然它可能不会有用,但这是我的标题样式示例:
font-family: SouvenirStd-Medium;
font-size: 5rem;
font-weight: 400;
font-style: normal;
line-height: 1.3;
letter-spacing: 0;
还有一个示例,说明我如何将文本置于环绕标签的中心。
div {
display: flex;
height:100px;
align-items: baseline;
}
【问题讨论】:
-
“问题在于字体本身。” - 是的……没有单一的方法可以解决这个问题。任何解决方案都依赖于字体。如果设计师如此坚持,让他们找到没有这个问题的字体。
-
尝试显示:块或内联以外的东西
-
能否提供您正在使用的 CSS 代码?
-
它实际上看起来像是垂直居中的,你只是碰巧没有使用任何下降线低于基线的字符。
-
@Quantastical See - jsfiddle.net/Paulie_D/aL757cLp/1 甚至
line-height都依赖于字体
标签: css