【发布时间】:2020-03-14 09:20:09
【问题描述】:
问题似乎是某些字母(例如 g、y、q 等)的尾部向下倾斜,不允许垂直居中。这是一个展示问题的图片。
绿色方框中的字符基本上是完美的,因为它们没有向下的尾巴。红框内的部分说明了问题所在。
我希望所有字符都完全垂直居中。在图像中,尾部向下的字符不是垂直居中的。这可以纠正吗?
Here is the fiddle that demonstrates the problem in full.
.avatar {
border-radius: 50%;
display: inline-block;
text-align: center;
width: 125px;
height: 125px;
font-size: 60px;
background-color: rgb(81, 75, 93);
font-family: "Segoe UI";
margin-bottom: 10px;
}
.character {
position: relative;
top: 50%;
transform: translateY(-50%);
line-height: 100%;
color: #fff;
}
<div class="avatar">
<div class="character">W</div>
</div>
<div class="avatar">
<div class="character">y</div>
</div>
【问题讨论】:
-
这是一个有趣的问题。答案可能在这里:iamvdo.me/en/blog/…
-
在这种情况下,您需要定义什么是 center。对我来说, y 实际上是居中的,而 A 可能不是。当我们有不同的字体系列时,我们不要说话,对齐会变得更糟
-
这就是字母的工作原理。它们是对齐的,因为
y中的v和g中的o部分与大写字母的最低点位于同一行。根据您的逻辑,Å、Ä、Ö 将与 A 和 O 一样对齐,但它们不能对齐。如果你想对它做一些特别的事情,你需要使用 javascript 检查它是否是一个小型大写字母,然后将字符向上推几个字符。 -
我很好奇这里是否有有用的答案。问题似乎是这些确实是居中的。 IE。假设你可以将 y 和 g 向上移动,如果你有一个小写的 a 呢?那应该怎么显示呢?
-
在任何字体编辑器中打开您的字体。编辑每个字符,直到您对所看到的 “居中” 感到满意为止。保存并用作您全新的字体系列。应该不超过 15 分钟。除了 SVG 或其他使用 canvas & co 的诡计之外,我没有看到其他理智的方法。但我会考虑这个问题。
标签: javascript html css vertical-alignment