CSS字间距规范

时间:2013-11-28 11:07:47

标签: css

CSS字间距是否有任何字符不会中断?

例如,假设我给元素一个大的word-spacing大小(等于元素宽度),这样它就会在每个单词上中断。所以对此:

<div class="break">THIS BREAKS ON EACH LINE</div>

我会得到:

---------
| THIS
| BREAKS
| ON
| EACH
| LINE
|--------

我是否可以使用任何不会破坏线条的角色。例如:

<div class="break">THIS BREAKS & EACH LINE</div>

我想在&符后不要休息:

---------
| THIS
| BREAKS
| & EACH          <<<--- Here
| LINE
|--------

4 个答案:

答案 0 :(得分:1)

我找到了一个不错的解决方法,使用行为正常的“瘦无空间”字符(&#8239;)。

http://jsfiddle.net/RJ6KW/4/

答案 1 :(得分:1)

通常,white-space在技术意义上影响“单词”之间的间距:单词是非空白字符的最大序列。因此,实际上,它会影响所有空格(空格,制表符,换行符)。但是,&ensp;fixed-width space characters不计为空格,因此您可以编写

THIS BREAKS &&ensp;EACH LINE

如果您不希望“&amp;”和“EACH”之间的间距扩大。但这并不完全安全,因为浏览器有朝一日可能会对字符进行不同的处理。他们已经改变了处理&nbsp;的方式;它过去是“不可拉伸的”但不再是。

所以安全的方式真的是

THIS BREAKS <span class=nows>& EACH</span> LINE

使用CSS

.nows { word-spacing: 0 }

防止换行是一个不同的问题,经常在SO处提出并回答。使用上面的安全方法,您可以使用不间断空格而不是普通空格:

THIS BREAKS <span class=nows>&&nbsp;EACH</span> LINE

答案 2 :(得分:0)

您可以使用&nbsp;(不间断空格)来防止中断...但这会maintain your word spacing

你最好的选择是扔一点jQuery in there,一个la:

CSS

.break{
    word-spacing:50px;
    width:50px;

}

HTML

<div class="break">THIS BREAKS ON & EACH LINE</div>

的jQuery

var txt = $('.break');
var ls=txt.css('word-spacing');
txt.html(txt.text().replace(' & ', '<span style="margin:0 -'+ls+' 0 0;"> &&nbsp;</span>'));

答案 3 :(得分:0)

使用不间断的空格&nbsp;,如下所示:

<div class="break">THIS BREAKS &&nbsp;EACH LINE</div>

see this demo