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

Вам потрібен символ Unicode ПРОСТІР НУЛЬКОШИРИНИ (\ u200B).

Ви можете отримати його в HTML за допомогою &#8203;або &#x200b;.

Явні перерви та нерозриви:

LB7: Не ламати перед пробілами або пробілом нульової ширини.
LB8: Перерва перед будь-яким символом, що слідує за пробілом нульової ширини, навіть якщо один або кілька пробілів втручаються.
http://unicode.org/reports/tr14/


Я тестував це, у Firefox 3.5.7 не виникає розриву рядка.
Полудень Шовковий

19
Це не призначено для створення явного розриву рядка. Він призначений для позначення точки, де лінія може бути обгорнута, якщо вона занадто довга, щоб поміститися туди, куди передбачається.
Анон.

13
Ну це IE6 для вас.
Mike Weller

2
Отже .... цей персонаж може бути злим, тому що якщо ви копіюєте вміст навколо, який його містить (у редакторах, що знають Unicode, які із задоволенням будуть грати), ви не будете знати про його присутність, і це призведе, наприклад, до того, щоб компілятори задихнулись ним. важко. Наприклад, Chrome скаже вам "НЕЗАКОННИЙ ХАРАКТЕР", але не вкаже вам, де він знаходиться. Я б використав цей загальноприйнятий трюк як крайній засіб
Стівен Лу

1
Це видима альтернатива - дефіс.
davidcondrey

38

Існує також маловідомий тег wbr , який дозволяє браузеру вирішувати, розривати рядок чи ні.


1
Слід зазначити, що це нестандартно і підтримується не у всіх браузерах.
Брайан Кемпбелл

1
@Brian, перевірте розміщене посилання quirksmode fredden.
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 є чудова сторінка, яка цілком приємно відповідає на це питання IMHO. http://www.quirksmode.org/oddsandends/wbr.html

Коротше: використовуйте <wbr /> або & # 8203; (або & сором'язливий; але ви згадали, що не хочете тире).


Не всі ці можливості підтримуються всіма браузерами. Я здогадуюсь & # 8203; є найкращим рішенням, оскільки більшість браузерів повинні мати можливість розпізнавати Unicode.
AndiDog

а користувачі IE6, мабуть, отримують потворний гліф ... моє серце плаче.
nickf


1

Ви можете використовувати властивість CSS3, що називається перенесенням слів

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

Сподіваюся, це допоможе!


2
Це працює, лише якщо вам байдуже, куди додано розрив рядка.
JJJ

Питання полягає в тому, щоб у конкретному слові встановити позицію, де перервати, а не як взагалі увімкнути перерву в роботі.
Фроде Евенсен

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.