我有一个使用<mark>标签交互式突出显示文本的应用程序.当用户拖动鼠标时,它会包装和展开文档中的文本节点,以向用户显示所选内容.当所选范围在单词的中间结束时,标记仅包围单词的一部分.如果边界位于kerned对之间,则禁用字距调整.
这是一个例子:
p { font-size: 30pt; margin: 0; line-height: 26pt; }Run Code Online (Sandbox Code Playgroud)
<p>There <mark>are 1</mark>1 entries.</p>
<p>There are 11 entries.</p>Run Code Online (Sandbox Code Playgroud)
在第一段中,<mark>标记在两个"1"数字之间结束.第二段具有相同的文本,没有<mark>.调整字体大小,边距和行间距以使段落更加接近,以使差异更加明显.
1与<mark>之间的空间比没有的更多.由于这在应用程序中以交互方式发生,因此当用户将鼠标拖过1s时,后续文本在它们位于1之间时向右移动,然后当它们越过下一个字符时向后移动.文本的"摇晃"可能很烦人.
有没有办法告诉浏览器不要将标记标记视为字距边界?也许是字体功能设置?
好吧,您可以完全关闭字距调整...我认为这是最接近看不到效果的,因为字距调整边界将始终位于标签边界。
p { font-size: 30pt; margin: 0; line-height: 26pt; font-kerning: none; }
mark { margin: 0; font-kerning: none; }Run Code Online (Sandbox Code Playgroud)
<p>There <mark>are 1</mark>1 entries.</p>
<p>There are 11 entries.</p>Run Code Online (Sandbox Code Playgroud)