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

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

Ответы:


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;}

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


2
Это работает, только если вам все равно, где добавляется разрыв строки.
JJJ

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.