是否有一个固定宽度的空格字符,不能在合理的段落中进行扩展?

时间:2013-10-22 01:43:56

标签: html

合理的段落扩展了词间距,但我希望 不受此扩展的影响。不幸的是, 受到了影响,因此我需要找到一个未受影响的空格字符(最好是一个与普通左对齐段落中普通空格宽度相同的字符)。有什么建议吗?

3 个答案:

答案 0 :(得分:5)

您可以添加.等字符并使其不可见。

有效。 jsFiddle here

它不被解析为空格,因为从技术上讲它是一个不可见的角色。

对于更干净的方法,您可以通过:after伪元素插入角色..

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

jsFiddle here

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

答案 2 :(得分:1)

Unicode提供了多个spacing characters。这里使用的可能是thin space,(HTML 0x2009,HTML中的&thinsp;),它小于但接近常规空间。 See it working on JSFiddle

您可能也对相关的Unicode 0x202F感兴趣,这是薄空间的非破坏版本。

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