合理的段落扩展了词间距,但我希望
不受此扩展的影响。不幸的是, 受到了影响,因此我需要找到一个未受影响的空格字符(最好是一个与普通左对齐段落中普通空格宽度相同的字符)。有什么建议吗?
答案 0 :(得分:5)
您可以添加.
等字符并使其不可见。
有效。 jsFiddle here
它不被解析为空格,因为从技术上讲它是一个不可见的角色。
对于更干净的方法,您可以通过:after
伪元素插入角色..
span:after {
content: ".";
visibility: hidden;
}
答案 1 :(得分:4)
HTML规范中未定义除SPACE和NO-BREAK SPACE之外的空格字符的渲染。在实践中,可以使用各种fixed-width spaces,并且它们不会在理由中扩展(实际上,它们被视为图形字符,只有空字形)。与宽度中的正常空间最匹配的那个是FOUR-PER-EM SPACE, 
,但是根据评论,您似乎更愿意使用THIN SPACE或SIX-PER-EM SPACE。 / p>
以前,用于将NO-BREAK SPACE视为不可扩展的浏览器,有些可能仍然可以,但由于一些奇怪的原因,大多数浏览器已经放弃了这个明智的想法。无法保证他们不会对固定宽度的空间做同样的事情。
除了提到的理论观点和风险之外,固定宽度空间还存在字体问题和可破坏性。字体问题主要适用于IE的旧版本,并且如果其宽度适合您并且您采用了NARROW NO-BREAK SPACE,则可以通过使用NARROW NO-BREAK SPACE解决可破坏性(即,固定宽度空间被视为允许它们之后的换行符)。字体问题的风险。
所以最好在CSS中做间距,即使它意味着更多的工作。对于例如“例如”在第一个时期之后有间距,你需要决定它应该是“例如”还是“e。 g。“在角色层面。在前一种情况下,只需将第一个句点包装在span
中并在其上设置padding-right
即可。在后一种情况下,您可以例如使用e.<span class=thin> </span>g.
并将span
的宽度设置为足够小(使用display: inline-block
和width
设置)。
答案 2 :(得分:1)
Unicode提供了多个spacing characters。这里使用的可能是thin space,(HTML 0x2009,HTML中的 
),它小于但接近常规空间。 See it working on JSFiddle
您可能也对相关的Unicode 0x202F感兴趣,这是薄空间的非破坏版本。
这对隐藏字符方法的好处是,空格实际上仍然存在于源中,因此将由屏幕阅读器读取(而隐藏的字符将被完全忽略)。