nbsp的反面是什么?


87

一个 字符是不允许换行的空间。

<p>lorem ipsum here&nbsp;are&nbsp;some&nbsp;words and so on</p>

| lorem ipsum                |
| here are some words and so |
| on                         |

那是什么相反呢?就是说,不是被渲染为空格,而是可以用于换行的字符。

<p>foo supercalifragilisticexpialidocious bar</p>
<!--   put char here ^   and here ^ -->

|foo supercalifragi |
|listicexpiali      |
|docious bar        |

or with wider size:

|foo supercalifragilisticexpiali   |
|docious bar                       |

我知道软连字符,但是出于我的目的,我特别希望在休息时添加连字符。

Answers:


96

您需要Unicode字符零宽度(\ u200B)。

您可以使用&#8203;或在HTML中获取它&#x200b;

显式休息和不休息:

LB7:不要在空格或零宽度空格之前中断。
LB8:即使插入一个或多个空格,也要在零宽度空格之后的任何字符之前中断。
http://unicode.org/reports/tr14/


我对此进行了测试,在Firefox 3.5.7中它不会产生换行符。
午间丝绸

19
这并不是要产生明确的换行符。这意味着要表示点线如果它太长,不适合在任何地方它应该去包裹。
Anon。

13
嗯,这就是IE6。
Mike Weller 2010年

2
所以....这个字符可能是邪恶的,因为如果您在包含它的内容周围进行复制(在会很高兴地使用unicode的编辑器中),您将不会意识到它的存在,并且会导致例如编译器阻塞它。硬。例如,Chrome会告诉您“ ILLEGAL CHARACTER”,但不会指出您的位置。我会把这个公认的整洁技巧作为最后的手段
史蒂文·卢

1
可见的替代方法是连字符。
davidcondrey

38

还有一个鲜为人知的wbr标记,它使浏览器可以决定是否换行。


1
请注意,这是非标准的,并非所有浏览器都支持。
布莱恩·坎贝尔,2010年

1
@Brian,检查发布的quirksmode链接。
尼克

10
如果对Facebook足够好,那么对每个人都足够好;-)
Martin Bean

1
WBR适用于Chrome 34.0.1847.131 m,Firefox 29.0.1和Opera Chromium 12.17。在IE 11.0.9600.17105中不起作用。
戴夫·伯顿

<wbr>是否添加一个-
beppe9000

16

在quirksmode.org上有一个漂亮的页面,很好地回答了恕我直言。http://www.quirksmode.org/oddsandends/wbr.html

简而言之:使用<wbr />或&#8203; (或&shy ;,但您提到您不想破折号)。


并非所有浏览器都支持所有这些可能性。我猜&#8203; 是最好的解决方案,因为大多数浏览器都应该能够识别Unicode。
AndiDog,2010年

IE6用户显然得到了一个丑陋的标志符号……我的心哭了。
尼克


1

您可以使用称为自动换行的CSS3属性

p.test {word-wrap:break-word;}

希望能帮助到你!


2
仅当您不在乎在何处添加换行符时,此方法才有效。
JJJ

问题是要在一个特定的单词中设置要中断的位置,而不是通常如何使工作中断。
Frode Evensen

-5

对此有很多讨论,但使用已成为或多或少的标准 &shy;


5
这是一个软连字符,问询者不希望这样做。
机械蜗牛
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.