一个 nbsp 的反义词是什么?

90
一个 字符是一个不允许换行的空格。
<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                       |

我知道软连字符,但是为了我的目的,我特别不想在断点处添加连字符。

6个回答

97

您想要Unicode字符零宽度空格(\u200B)。

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

显式换行和非换行:

LB7:不要在空格或零宽度空格之前换行。
LB8:在零宽度空格后面的任何字符之前都要换行,即使有一个或多个空格也是如此。
http://unicode.org/reports/tr14/


我测试过了,在Firefox 3.5.7中不会产生换行。 - Noon Silk
19
它的意思不是要产生一个显式的换行符。它的意思是指示一点,在那里,如果行太长无法适应其所需位置,就可以进行换行。 - Anon.
2
所以......这个字符可能会很邪恶,因为如果你在包含它的内容周围复制内容(在支持Unicode的编辑器中,它们将欣然配合),你将不会意识到它的存在,并且它将导致编译器出现问题。例如,Chrome会告诉您“非法字符”,但不会指出它在哪里。我会把这个确实很巧妙的技巧作为最后的选择。 - Steven Lu
它应该被称为“非空格断点”。 - jackreichert
1
它的可见替代是连字符。 - davidcondrey

38

还有一个鲜为人知的 wbr标签,它允许浏览器决定是否换行。


1
需要注意的是,这是非标准的,在所有浏览器中都不被支持。 - Brian Campbell
1
@Brian,请查看fredden发布的quirksmode链接。 - nickf
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中不可用。 - Dave Burton
<wbr>会添加一个 - 吗? - beppe9000
@beppe9000 你可能想看一下&shy; - Felix Jassler

17

并非所有浏览器都支持这些可能性。我想 ​ 是最好的解决方案,因为大多数浏览器应该能够识别Unicode。 - AndiDog
而IE6用户则会看到一个丑陋的字形...我的心在哭泣。 - nickf

4

3
您可以使用CSS3属性称为word-wrap
p.test {word-wrap:break-word;}

希望它有所帮助!

2
这仅在您不关心换行符添加的位置时才有效。 - JJJ
问题是在特定单词中设置断行位置,而不是如何一般启用断行。 - Frode Evensen

-5

关于这个问题有很多讨论,但现在使用 &shy; 已经成为了标准。


5
这是一个软连字符,问者不希望出现它。 - Mechanical snail

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接