2010-01-12 2 views
82

A   символ - это пространство, которое не допускает разрыва строки.Что противоположно nbsp?

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

Я знаю о soft-hyphen character, но для моих целей, я специально сделать не хотят дефис добавил на перерыв.

+0

Номинация @NoRefundsNoReturns для наиболее проницательного комментария 2010 –

ответ

92

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

Вы можете получить это в HTML-формате с &#8203; или &#x200b;.

Явные разрывы и не-брейки:

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

+0

Я протестировал это, он не создает разрыв строки в Firefox 3.5.7. –

+18

Он не предназначен для создания явной строки. Это означает указать точку, в которой строка * может быть обернута, если она слишком длинная, чтобы вписаться туда, куда она должна идти. –

+2

Ах, ну в этом случае, он * делает * работу и красиво сделан. –

38

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

+1

Следует отметить, что это нестандартное и не поддерживается во всех браузерах. –

+1

@Brian, проверьте, что ссылка quirksmode отправлена ​​fredden. – nickf

+10

Если он достаточно хорош для Facebook, он достаточно хорош для каждого ;-) –

15

На странице quirksmode.org есть хорошая страница, которая отвечает на этот вопрос довольно хорошо ИМХО. http://www.quirksmode.org/oddsandends/wbr.html

Вкратце: использование < wbr/> или & # 8203; (или & застенчивый, но вы упомянули, что вам не нужна тире).

+0

Не все из этих возможностей поддерживаются всеми браузерами. Я думаю, ​ - лучшее решение, так как большинство браузеров должны иметь возможность распознавать Unicode. – AndiDog

+0

и пользователи IE6 получают безобразный глиф, очевидно ... мое сердце плачет. – nickf

-4

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

+4

Это мягкий дефис, который не хотел. –

1

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

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

Надеется, что это помогает!

+1

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