编辑:这是一个情况的小提琴.
好的,所以我正在建立一个网页,但我遇到了一个令人恼火的字体怪癖.似乎sans-serif字体拒绝准确地坐在他们所在的盒子的左边缘.
以下是一些用于演示此问题的实验性HTML:
<html>
<head>
<style>
.box {
margin: 30px 0px 0px 30px;
border: 1px solid #f00;
}
</style>
</head>
<body style="font-size: 36px;">
<!-- text beginning with 'M', which has serifs protruding from the left side in a serif font -->
<div class="box" style="font-family: 'Segoe UI';">My text</div> <!-- sans-serif -->
<div class="box" style="font-family: 'Times New Roman';">My text</div> <!-- serif -->
<div class="box" style="font-family: 'Arial';">My text</div> <!-- sans-serif -->
<div class="box" style="font-family: 'Garamond';">My text</div> <!-- serif -->
<!-- text beginning with 'T', which has no left-protruding serifs in a serif font -->
<div class="box" style="font-family: 'Segoe UI';">Text</div> <!-- sans-serif -->
<div class="box" style="font-family: 'Times New Roman';">Text</div> <!-- serif -->
<div class="box" style="font-family: 'Arial';">Text</div> <!-- sans-serif -->
<div class="box" style="font-family: 'Garamond';">Text</div> <!-- serif -->
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我可以设置/修改CSS属性的任何想法,使文本位于其容器的左边缘?优雅地说,那就是 - 我真的不喜欢逐个字符的解决方案.
小智 2
我不确定你是否是这个意思,但它可能是从 M 到其边界的“边缘”......
好吧,让我解释一下字体......
每个字母都有固定大小的“盒子”所在。因此,如果字体的创建者不使用整个空间,则可能会发生这种效果!意味着,除了编辑字体之外,您无法对此采取任何措施!
示例图片,您可以看到上部 M 的距离...因此,如果您不使左侧 M 破折号弯曲,请直接做直线,就像在您的版本中一样,您的边框和 M 之间将有一个“间隙”!:)

如果您选择文本,您可以看到该字符是正确的。“蓝色”选择将显示它与边框笔直且没有间隙,如果出现渲染或 CSS 错误,不会发生什么!
我希望我能帮助你回答这个问题。