微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

文本未在垂直方向完美居中,因为字体的后代稍大

如何解决文本未在垂直方向完美居中,因为字体的后代稍大

当我在网上试用 Calibre 字体时,我注意到文本没有正确地垂直居中。经过研究,我发现字体的后代比上升字体略粗。

下图是figma中的calibre字体,清楚地表明后代更大

enter image description here

因为它在figma上很容易被纠正。但是当我在网上试用它时,我遇到了同样的问题。文本没有正确地在垂直方向居中。

enter image description here

enter image description here

在这里附上了代码

    <style>
            @font-face {
                font-family: "calibre-semi-bold";
                src: url(./calibre-semibold-webfont.ttf);
            }
    
            .text {
                font-family: "calibre-semi-bold";
                font-size: 6em;
            }
    
            .container {
                background-color: orange;
                height: 120px;
                width: 70%;
                display: inline-flex;
                align-items: center;
                justify-content: center;
                line-height: 90px;
            }
        </style>
<body>
    <div class="container">
        <p class="text">
            Cutting Edge technology
        </p>
    </div>
</body>

经过一番谷歌搜索,我发现实际上有一个名为 descent-override属性可以在 @font-face 中使用它来解决问题。但是,MDN 提到 Safari 和其他旧版本浏览器不支持属性

@font-face {
            font-family: "calibre-semi-bold";
            src: url(./calibre-semibold-webfont.ttf);
            descent-override: 17%;
        }

使用descent-override

enter image description here

这种差异在图片中很难注意到,但在直播网络上却非常显着。

是否有任何适当的方法可以在不影响浏览器兼容性的情况下垂直居中此文本?谢谢。

解决方法

我会将 line-height: 100%; 添加到 .text 元素,以将行高设置为与字体大小相同的大小。

除此之外,您还可以在该元素上添加 position:relative 并使用 top: ... 设置(该值的反复试验)以使其垂直偏移。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。