4 回答
要指示单词之间不应出现换行符的位置,请在单词之间使用 NO-BREAK SPACE 或 ' `。任何正常的空间都是易碎的。所以你可以写例如
Hello, my name is foo.
如果您更愿意指出允许的换行符(根据您下面的评论),您可以将文本包装在一个nobr
元素内(非标准,但就像一个魅力)或您设置的任何元素内white-space: nowrap
,从而禁止换行符,除非明确强制或允许。然后,您将在空格后使用<wbr>
标签(非标准,但是...)或字符引用​
或​
(对于冰零宽度空格)以允许换行,例如
<nobr>Hello, <wbr>my name <wbr>is foo.</nobr>
<wbr>
和零宽度空间之间的选择是一个棘手的问题,主要是由于 IE 的奇怪之处。
你可以使用<wbr>
标签。
编辑:如评论中所述,您可以使用零宽度空间:(​
另请参阅:nbsp 的对立面是什么?)
我不认为有任何本地方法可以做到这一点,但这是我在真正需要这种东西时一直在使用的一种技巧:
var str = "Hello,<br>My name is foo.";
str = str.replace(/ /g, ' ').replace(/<br>/g, ' ');
基本上,使用不间断的空格来分隔您不想中断的单词。
在这里查看它的实际操作:http: //jsfiddle.net/5xmt6/(调整窗口大小以查看它的反应)。
注意:这非常hacky,并引入了自己的一组问题;即:如果视口变得非常窄,则文本的其余部分将不会换行。
这是一种仍然有效的技术:使用inline-block
.
https://jsfiddle.net/mindplay/7aeyp3hs/
请注意,我正在使用@media
规则在非常小的设备上关闭此效果,在这些设备上,文本将像文本正常流动一样流动。