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


合理的段落扩展了字间距,但我预计   不受这种扩张的影响。不幸的是,它  受影响,所以我需要找到一个未受影响的空格字符(最好是一个与普通左对齐段落中的普通空格宽度相同的字符)。有什么建议么?


9552
2017-10-22 01:43


起源

需要角色的原因是什么?就是想。 - Josh Crozier
缩写词“i。e。”和“例如”当空间扩大时看起来很丑陋。 - 76987
那里没有空间,例如 - Sebas
@ 76987那是因为根本不存在空间。简单地说“即”和“例如”。 - Andrew Marshall
@AndrewMarshall不幸的是,那里 是 旧文本中使用这些缩写的空格。这就是我想要复制的东西。 - 76987


答案:


你可以添加一个像 . 并使它隐形。

有用。 jsFiddle在这里

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

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

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

jsFiddle在这里


5
2017-10-22 02:37



删除该字符/跨度根本不会改变外观。那有什么意义呢?也没有单宽度空间。 - Andrew Marshall
@AndrewMarshall实际上是的,两个例子中都有空格!仔细看看..看 i.stack.imgur.com/Ltftb.png ..具体是OP想要的。 - Josh Crozier
不在Chrome 30,Chrome 32,FF 24或Safari 6上(全部在OS X 10.8上)。 i.imgur.com/dOTWXlu.png - Andrew Marshall
它适用于Windows Chrome / FF / IE。关于 span?那肯定会奏效。 - Josh Crozier
是的,跨度确实有效。出于某种原因,我认为它没有,但也许是再次看第一个。 - Andrew Marshall


HTML规范中未定义除SPACE和NO-BREAK SPACE之外的空格字符的呈现。在实践中,各种各样 固定宽度的空间 可以使用,并且它们不会在理由中扩展(实际上,它们被视为图形字符,只有空字形)。与宽度中的正常空间最匹配的那个是四个空间,  但是从评论来看,您似乎更愿意使用THIN SPACE或SIX-PER-EM SPACE。

以前,用于将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-block 和a width 设置)。


4
2017-10-22 06:50





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

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

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


1
2017-10-22 03:21