24
4

4 回答 4

15

要指示单词之间不应出现换行符的位置,请在单词之间使用 NO-BREAK SPACE 或 ' `。任何正常的空间都是易碎的。所以你可以写例如

Hello, my name is foo. 

如果您更愿意指出允许的换行符(根据您下面的评论),您可以将文本包装在一个nobr元素内(非标准,但就像一个魅力)或您设置的任何元素内white-space: nowrap,从而禁止换行符,除非明确强制或允许。然后,您将在空格后使用<wbr>标签(非标准,但是...)或字符引用&#8203;&#x200b;(对于冰零宽度空格)允许换行,例如

<nobr>Hello, <wbr>my name <wbr>is foo.</nobr>

<wbr>和零宽度空间之间的选择是一个棘手的问题,主要是由于 IE 的奇怪之处。

于 2013-01-02T22:11:07.560 回答
12

你可以使用<wbr>标签。

编辑:如评论中所述,您可以使用零宽度空间:(&#8203;另请参阅:nbsp 的对立面是什么?

于 2013-01-02T20:42:54.603 回答
2

我不认为有任何本地方法可以做到这一点,但这是我在真正需要这种东西时一直在使用的一种技巧:

var str = "Hello,<br>My name is foo.";

str = str.replace(/ /g, '&nbsp;').replace(/<br>/g, ' ');

基本上,使用不间断的空格来分隔您不想中断的单词。

在这里查看它的实际操作:http: //jsfiddle.net/5xmt6/(调整窗口大小以查看它的反应)。


注意:非常hacky,并引入了自己的一组问题;即:如果视口变得非常窄,则文本的其余部分将不会换行。

于 2013-01-02T20:42:29.110 回答
1

这是一种仍然有效的技术:使用inline-block.

https://jsfiddle.net/mindplay/7aeyp3hs/

例子

请注意,我正在使用@media规则在非常小的设备上关闭此效果,在这些设备上,文本将像文本正常流动一样流动。

于 2020-03-18T13:13:35.720 回答