Что противоположно 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                       |

Мне известен символ мягкого дефиса , но для моих целей я специально не хочу, чтобы дефис добавлялся в разрыв.

Nickf
источник

Ответы:

96

Вам нужен символ юникода ZERO-WIDTH SPACE (\ u200B).

Вы можете получить его в HTML с помощью &#8203;или &#x200b;.

Явные перерывы и неперерывы:

LB7: Не разбивать перед пробелами или пробелом нулевой ширины.
LB8: разрыв перед любым символом, следующим за пробелом нулевой ширины, даже если вмешиваются один или несколько пробелов.
http://unicode.org/reports/tr14/

Анон.
источник
Я тестировал это, он не вызывает разрыв строки в Firefox 3.5.7.
Noon Silk
19
Это не предназначено для явного переноса строки. Он предназначен для обозначения точки, в которой можно обернуть линию , если она слишком длинная, чтобы уместиться там, где она должна идти.
Аноним.
13
Ну, это IE6 для тебя.
Майк Веллер
2
Итак ... этот символ может быть злым, потому что, если вы копируете контент вокруг, который его содержит (в редакторах, поддерживающих Unicode, которые с радостью подыгрывают), вы не заметите его присутствия, и это заставит, например, компиляторы подавиться им. жесткий. Например, Chrome скажет вам «НЕЗАКОННЫЙ ХАРАКТЕР», но не укажет вам, где он находится. Я бы использовал этот, по общему признанию, изящный трюк в крайнем случае
Стивен Лу
1
Видимая альтернатива - дефис.
Дэвидкондрей
38

Также существует малоизвестный тег wbr , который позволяет браузеру решать, разрывать строку или нет.

Мэтт Хэмпел
источник
1
Следует отметить, что это нестандартно и поддерживается не во всех браузерах.
Брайан Кэмпбелл
1
@Brian, проверьте ссылку quirksmode, которую опубликовал Фредден.
nickf
10
Если этого достаточно для Facebook, этого хватит для всех ;-)
Мартин Бин
1
WBR работает в Chrome 34.0.1847.131 м, 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
а пользователи IE6 видимо получают уродливый глиф ... мое сердце плачет.
nickf
1

Вы можете использовать свойство CSS3 под названием word-wrap

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

Надеюсь, это поможет!

Swanidhi
источник
2
Это работает, только если вам все равно, где добавляется разрыв строки.
JJJ
Вопрос в том, чтобы установить в конкретном слове позицию, где делать перерыв, а не как включить перерыв в работе вообще.
Frode Evensen
-5

Об этом много говорят, но он стал более или менее стандартным в использовании &shy;

Surrican
источник
5
Это мягкий дефис, который спрашивающий не хотел.
Механическая улитка