html - 在 span 中包装字符 "Y",增加到下一个字符的边距

标签 html css

在我当前的元素中,我需要将一个句子的每个字符都包裹在一个范围内,这样我就可以测量从句子开头到相关字符的距离。

不幸的是,似乎将 一些 字符(我发现它对“Y”和“T”是正确的)包裹在一个跨度中,在右边增加了额外的边距,所以整个文本被拉伸(stretch):

div { font-size: 100px; }
<h2>Expected (same width):</h2>
<div>A-A-A-A</div>
<div>
  <span>A</span><span>-</span><span>A</span><span>-</span><span>A</span><span>-</span><span>A</span>
</div>

<h2>Unexpected (different width):</h2>
<div>Y-Y-Y-Y</div>
<div>
  <span>Y</span><span>-</span><span>Y</span><span>-</span><span>Y</span><span>-</span><span>Y</span>
</div>

如果您运行该代码段,您会发现,“Y-Y-Y-Y”在包裹在 SPAN 中时要宽得多。

为什么会这样?我怎样才能防止这种行为?

最佳答案

您可以通过将 font-kerning:none; 设置为 div

来解决这个问题

Like this

div { font-size: 100px; font-kerning: none; }

https://developer.mozilla.org/en-US/docs/Web/CSS/font-kerning

关于html - 在 span 中包装字符 "Y",增加到下一个字符的边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36547855/

相关文章:

css - 如何在BEM中表达结构化伪类(例如 `:last-child`)?

html - 从 Bootstrap 中的表顶部删除行

html - 纯 CSS 导航菜单 - 需要根元素在打开时保持黑色

html - 在类似 Pinterest 的布局中将 div 放在底部

javascript - 将 DIV 显示为覆盖层

jquery - SVG animateTransform 不适用于 FF 和 IE

javascript - 如何隐藏具有包含某些值的 TD 的表行

html - CSS-如何在底部边框线上对齐背景图像?包含 Jsfiddle

javascript - 在 jQuery 中选中复选框时,如何将项目添加到列表中?

html - 多个 float 左边不会 float 在每个留下难看的空白