14

两端对齐的段落扩大了字间距,但我预计 不会受到这种扩大的影响。不幸的是,它受到了影响,因此我需要找到一个不受影响的空格字符(最好是与普通左对齐段落中的普通空格具有相同宽度的空格字符)。有什么建议么?

4

3 回答 3

7

您可以添加一个字符,例如.并使其不可见。

有用。jsFiddle在这里

它不会被解析为空格,因为它在技术上是一个不可见的字符。

对于更清洁的方法,您可以通过伪元素插入字符:after..

span:after {
    content: ".";
    visibility: hidden;
}

jsFiddle在这里

于 2013-10-22T02:37:55.377 回答
6

除了 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>&nbsp;</span>g.并将宽度设置为span足够小的东西(使用display: inline-blockwidth设置)。

于 2013-10-22T06:50:43.707 回答
1

Unicode 提供了几个间距字符。这里使用的可能是比常规空间小但接近于常规空间的薄空间(Unicode 0x2009,在 HTML 中)。看到它在 JSFiddle 上工作&thinsp;

您可能还对相关的 Unicode 0x202F 感兴趣,它是精简空间的非破坏版本。

与隐藏字符方法相比,此方法的好处是空格实际上仍然存在于源中,因此屏幕阅读器将照此读取(而隐藏字符将被完全忽略)。

于 2013-10-22T03:21:05.490 回答