两端对齐的段落扩大了字间距,但我预计
不会受到这种扩大的影响。不幸的是,它受到了影响,因此我需要找到一个不受影响的空格字符(最好是与普通左对齐段落中的普通空格具有相同宽度的空格字符)。有什么建议么?
3 回答
您可以添加一个字符,例如.
并使其不可见。
有用。jsFiddle在这里
它不会被解析为空格,因为它在技术上是一个不可见的字符。
对于更清洁的方法,您可以通过伪元素插入字符:after
..
span:after {
content: ".";
visibility: hidden;
}
除了 SPACE 和 NO-BREAK SPACE 之外的空格字符的呈现在 HTML 规范中没有定义。在实践中,可以使用各种固定宽度的空格,并且它们不进行对齐扩展(实际上,它们被视为图形字符,只是带有空字形)。与正常空间宽度最匹配的是 FOUR-PER-EM SPACE,  
,但从评论来看,您似乎更愿意使用 THIN SPACE 或 SIX-PER-EM SPACE。
以前,浏览器习惯将 NO-BREAK SPACE 视为不可扩展,有些可能仍然如此,但出于某种奇怪的原因,大多数浏览器都放弃了这个明智的想法。不能保证他们不会对固定宽度的空间做同样的事情。
除了理论点和提到的风险外,固定宽度的空间还存在字体问题和易碎性。字体问题主要适用于旧版本的 IE,如果宽度适合您并且您采用字体问题的风险。
所以最好在 CSS 中做间距,即使这意味着更多的工作。例如“eg”在第一个句点之后有空格,您需要在字符级别决定它应该是“eg”还是“eg”。在前一种情况下,只需将第一个句点包装在 a 中span
并设置padding-right
它。在后一种情况下,您可以例如使用e.<span class=thin> </span>g.
并将宽度设置为span
足够小的东西(使用display: inline-block
和width
设置)。
Unicode 提供了几个间距字符。这里使用的可能是比常规空间小但接近于常规空间的薄空间(Unicode 0x2009,在 HTML 中)。看到它在 JSFiddle 上工作。 
您可能还对相关的 Unicode 0x202F 感兴趣,它是精简空间的非破坏版本。
与隐藏字符方法相比,此方法的好处是空格实际上仍然存在于源中,因此屏幕阅读器将照此读取(而隐藏字符将被完全忽略)。