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.

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/


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.


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


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


1

Você pode usar a propriedade CSS3 chamada quebra de linha

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

Espero que ajude!


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.