Qual é o oposto de um nbsp?

87

Um  caractere é um espaço que não permite quebra de linha.

<p>lorem ipsum here&nbsp;are&nbsp;some&nbsp;words and so on</p>

| lorem ipsum                |
| here are some words and so |
| on                         |

Qual é o oposto disso? Ou seja, um caractere que NÃO é renderizado como um espaço, mas PODE ser usado para quebra de linha.

<p>foo supercalifragilisticexpialidocious bar</p>
<!--   put char here ^   and here ^ -->

|foo supercalifragi |
|listicexpiali      |
|docious bar        |

or with wider size:

|foo supercalifragilisticexpiali   |
|docious bar                       |

Estou ciente do caractere soft-hífen , mas, para meus propósitos, não quero especificamente um hífen adicionado na pausa.

nickf
fonte

Respostas:

96

Você quer o caractere Unicode ESPAÇO DE LARGURA ZERO (\ u200B).

Você pode obtê-lo em HTML com &#8203;ou &#x200b;.

Pausas explícitas e não pausas:

LB7: Não quebre antes de espaços ou espaço de largura zero.
LB8: quebra antes de qualquer caractere após um espaço de largura zero, mesmo se um ou mais espaços intervirem.
http://unicode.org/reports/tr14/

Anon.
fonte
Eu testei isso, não produz quebra de linha no Firefox 3.5.7.
Noon Silk
19
Não se destina a produzir uma quebra de linha explícita. Destina-se a indicar um ponto onde a linha pode ser quebrada se for muito longa para caber onde deveria ir.
Anon.
13
Bem, isso é o IE6 para você.
Mike Weller
2
Então .... este personagem pode ser maléfico porque se você copiar conteúdo que o contenha (em editores compatíveis com Unicode que irão alegremente jogar junto) você não perceberá sua presença, e isso fará com que, por exemplo, compiladores sufoquem com ele. Difícil. Por exemplo, o Chrome dirá a você "PERSONAGEM ILEGAL", mas não indicará onde ele está. Eu usaria este truque reconhecidamente legal como um último recurso
Steven Lu
1
Sua alternativa visível é um hífen.
davidcondrey
38

Também existe a pouco conhecida tag wbr , que permite ao navegador decidir se quebra a linha ou não.

Matt Hampel
fonte
1
Deve-se observar que isso não é padrão e não é compatível com todos os navegadores.
Brian Campbell
1
@Brian, verifique o link quirksmode que Fredden postou.
nickf
10
Se é bom o suficiente para o Facebook, é bom o suficiente para todos ;-)
Martin Bean
1
WBR funciona no Chrome 34.0.1847.131 m, Firefox 29.0.1 e Opera Chromium 12.17. Não funciona no IE 11.0.9600.17105.
Dave Burton
<wbr> adiciona um -?
beppe9000
16

Há uma página legal em quirksmode.org que responde a essa pergunta IMHO muito bem. http://www.quirksmode.org/oddsandends/wbr.html

Resumindo: use <wbr /> ou & # 8203; (ou & shy; mas você mencionou que não quer o travessão).

Fredden
fonte
Nem todas essas possibilidades são suportadas por todos os navegadores. Acho que & # 8203; é a melhor solução, pois a maioria dos navegadores deve ser capaz de reconhecer Unicode.
AndiDog
e os usuários do IE6 obtêm um glifo feio, aparentemente ... meu coração chora.
nickf
4

use <wbr> .

jrharshath
fonte
1

Você pode usar a propriedade CSS3 chamada quebra de linha

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

Espero que ajude!

Swanidhi
fonte
2
Isso funciona apenas se você não se importar onde a quebra de linha é adicionada.
JJJ
A questão é definir uma posição em uma palavra específica onde interromper, não como permitir o intervalo de trabalho em geral.
Frode Evensen
-5

há muita discussão sobre isso, mas tornou-se mais ou menos padrão de usar &shy;

O surricano
fonte
5
Este é um hífen suave, que o autor da pergunta não queria.
Caracol mecânico de