Como você resolve o problema com hífens suaves em suas páginas da web? Em um texto, pode haver palavras longas que você pode querer quebra de linha com um hífen. Mas você não deseja que o hífen seja exibido se a palavra inteira estiver na mesma linha.
De acordo com os comentários nesta página, <wbr>
há uma "sopa de tags inventada pela Netscape" não padrão. Parece que também ­
tem seus problemas com a conformidade padrão . Parece não haver maneira de obter uma solução funcional para todos os navegadores .
Qual é o seu caminho para lidar com hífens suaves e por que você o escolheu? Existe uma solução preferida ou uma prática recomendada?
Consulte a discussão SO relacionada aqui .
html
text
soft-hyphen
wbr
Pontus
fonte
fonte
<wbr>
não é para ser um hífen.Respostas:
Infelizmente,­
o suporte é tão inconsistente entre os navegadores que ele realmente não pode ser usado.O QuirksMode está certo - não há uma boa maneira de usar hífens suaves em HTML no momento. Veja o que você pode fazer para ficar sem eles.Edição de 2013: De acordo com o QuirksMode ,
­
agora funciona / é suportado em todos os principais navegadores.fonte
­
palavra no Chrome v21, e ele ignora corretamente o hífen suave. Não tenho certeza sobre o IE, FF e outros navegadores.­
de uso devido a erros específicos em Webkit (que afectam Safari, Safari iOS e Chrome versões mais recentes), causando caracteres estranhos renderização com um número significativo de fontes personalizadas (ambos gratuitos e comerciais)Resumo de fevereiro de 2015 (parcialmente atualizado em novembro de 2017)
Todos eles têm um bom desempenho,
­
mas o Google ainda pode indexar as palavras que o contêm.­
e os­
dois são exibidos conforme o esperado nos principais navegadores (mesmo no IE antigo!).<wbr>
não é suportado nas versões recentes do IE (10 ou 11) e não funciona corretamente no Edge.­
e­
para Chrome e Firefox no Mac, no Windows (10), mantém os caracteres e cola hífens fortes no Bloco de Notas e hífens invisíveis nos aplicativos que os suportam. O IE (win7) sempre cola com hífens, mesmo no IE10, e o Safari (Mac) copia de uma maneira que cola como hífens em alguns aplicativos (por exemplo, MS Word), mas não em outros­
e­
em todos os navegadores, exceto o IE, que corresponde apenas às correspondências exatas copiadas e coladas (até o IE11)­
com palavras digitadas normalmente. A partir de 2017, parece não corresponder mais às palavras que contêm­
. Appers Yandex para ser o mesmo. Bing e Baidu parecem não corresponder.Teste-o
Para testes ao vivo atualizados, aqui estão alguns exemplos de palavras exclusivas com hífens suaves.
­
-confumbabbl­ication­ism
- confumbabblicationism<wbr>
-donfounbabbl<wbr>ication<wbr>ism
. Este site é removido<wbr/>
da saída. Aqui está um trecho de jsbin.com para teste .­
-eonfulbabbl­ication­ism
- eonfulbabblicationismAqui eles estão sem hífens tímidos (isto é para copiar e colar nos testes de localização na página; escritos de uma maneira que não interrompa os testes do mecanismo de pesquisa):
ZZZconfumbabblicationismZZZdonfounbabblicationismZZZeonfulbabblicationismZZZ
Exibir nos navegadores
Êxito: exibido como uma palavra normal, exceto onde deve quebrar, quando quebra e hifeniza no local especificado.
Falha: exibição incomum ou falha no local pretendido.
­
sucesso,<wbr>
sucesso,­
sucesso­
sucesso,<wbr>
sucesso,­
sucesso­
sucesso,<wbr>
ainda não testado ,­
sucesso­
sucesso,<wbr>
falha (interrupção, mas sem hífen),­
sucesso­
sucesso,<wbr>
falha (sem interrupção),­
sucesso­
sucesso,<wbr>
falha (sem interrupção),­
sucessoword-wrap
. Às vezes, eles parecem funcionar. Ainda não foi encontrado nenhum padrão claro sobre o porquê.­
sucesso,<wbr>
sucesso,­
sucessoCopiar e colar nos navegadores
Sucesso: copiar e colar a palavra inteira, sem hífen. (testado no Mac, colando na pesquisa do navegador, MS Word 2011 e Sublime Text)
Falha: colando com um hífen, espaço, quebra de linha ou com caracteres indesejados.
­
sucesso,<wbr>
sucesso,­
sucesso­
sucesso,<wbr>
sucesso,­
sucesso­
falha no MS Word (cola tudo como hífen), o sucesso em outros aplicativos<wbr>
falha ,­
falha no MS Word (cola tudo como hífen), sucesso em outros aplicativos­
falha cola todos como hífens,<wbr>
falha ,­
falha colar tudo como hífen­
falha cola todos como hífens,<wbr>
falha ,­
falha colar tudo como hífen­
falhar cola tudo como hífen,<wbr>
falhar ,­
falha colar tudo como hífenCorrespondência de mecanismo de pesquisa
Atualizado em novembro de 2017.
<wbr>
não testado porque o CMS do StackOverflow o retirou.Êxito: pesquisas em geral, a palavra não hifenizada encontra esta página.
Falha: os motores de busca encontram esta página apenas nas pesquisas dos segmentos quebrados das palavras ou de uma palavra com hífens.
­
falha,­
consegue­
falha,­
falha­
falha,­
falha (pode corresponder fragmentos em cadeias mais longas, mas não as palavras que contêm um­
ou­
)­
falha,­
é bem-sucedido (embora seja possível que ele corresponda a um fragmento de sequência como o Baidu, não tenho 100% de certeza)Localizar na página nos navegadores
Sucesso e falha como correspondência de mecanismo de pesquisa.
­
sucesso,<wbr>
sucesso,­
sucesso­
sucesso,<wbr>
sucesso,­
sucesso­
sucesso,<wbr>
sucesso,­
sucesso­
falha apenas corresponde quando ambos contêm hífens tímidos,<wbr>
sucesso,­
falha apenas corresponde quando ambos contêm hífens tímidos­
falha apenas corresponde quando ambos contêm hífens tímidos,<wbr>
sucesso,­
falha apenas corresponde quando ambos contêm hífens tímidos­
falha apenas corresponde quando ambos contêm hífens tímidos,<wbr>
sucesso,­
falha apenas corresponde quando ambos contêm hífens tímidosfonte
<wbr/>
trabalha no Firefox e Chrome. (E, para ser honesto, eu suspeito que ele fez mesmo em fevereiro, pelo menos no Windows.)<wbr/>
funciona em ambas. Observe que o<wbr>
elemento não deve adicionar um hífen quando ocorrer uma interrupção. Em outras palavras,<wbr/>
e­
são não deveria fazer a mesma coisa .<wbr/>
s da marcação final, mantendo-os no código-fonte. Maldito seja, SE! Will edit ..­
e­
? Quando atingem o DOM, são literalmente os mesmos ; somente no tokenizer HTML eles são totalmente diferentes.Há um esforço contínuo para padronizar a hifenização no CSS3 .
Alguns navegadores modernos, principalmente o Safari e o Firefox, já suportam isso. Aqui está uma referência boa e atualizada sobre o suporte ao navegador .
Uma vez que a hifenização do CSS seja implementada universalmente, essa seria a melhor solução. Enquanto isso, posso recomendar o Hyphenator - um script JS que descobre como hifenizar seu texto da maneira mais apropriada para um navegador específico.
Hifenizador:
­
na maioria dos outros navegadores,Eu usei e funciona muito bem!
fonte
Eu uso
­
, inserido manualmente, quando necessário.Eu sempre acho uma pena que as pessoas não usem técnicas porque existe algum navegador, talvez velho ou estranho, que não lida com elas da maneira como foram especificadas. Descobri que
­
está funcionando corretamente nos navegadores Internet Explorer e Firefox recentes, isso deve ser suficiente. Você pode incluir uma verificação no navegador informando às pessoas para usarem algo adulto ou continuarem por seu próprio risco se encontrarem algum navegador estranho.A silabificação não é tão fácil e não recomendo deixá-lo para algum Javascript . É um tópico específico do idioma e pode precisar ser cuidadosamente revisado pelo funcionário da recepção, se você não quiser que seu texto seja irritante. Alguns idiomas, como o alemão, formam palavras compostas e provavelmente levam a problemas de decomposição. Por exemplo
Spargelder
( germ. Economizou dinheiro, pl.) Pode, por regras de silabificação, ser embrulhado em dois lugares (Spar-gel-der
). No entanto, envolvê-lo na segunda posição, faz com que a primeira parte apareça comoSpargel-
( germe. Aspargo), ativando um conceito completamente enganador na cabeça do leitor e, portanto, deve ser evitado.E o que dizer da corda
Wachstube
? Pode significar 'sala de guarda' (Wach-stu-be
) ou 'tubo de cera' (Wachs-tu-be
). Provavelmente você também pode encontrar outros exemplos em outros idiomas. Você deve fornecer um ambiente no qual o recepcionista possa ser apoiado na criação de um texto bem silabificado, revisando todas as palavras críticas.fonte
É muito importante notar que, a partir do HTML5,
<wbr>
e­
não é suposto fazer a mesma coisa !Hífens suaves
­
é um hífen suave, ou seja, U + 00AD: SOFT HYPHEN. Por exemplo,pode ser renderizado como
ou como
Atualmente, hífens suaves funcionam no Firefox, Chrome e Internet Explorer.
O
wbr
elementoO
wbr
elemento é uma oportunidade de quebra de palavras, que não exibirá um hífen se ocorrer uma quebra de linha. Por exemplo,pode ser renderizado como
ou como
Atualmente, esse elemento funciona no Firefox e Chrome.
fonte
A entidade de espaço com largura zero pode ser usada no lugar da
<wbr>
tag de maneira confiável em praticamente todas as plataformas.Também é útil a palavra entidade marcenaria , que pode ser usada para proibir uma interrupção. (Insira entre cada caractere de uma palavra, exceto onde você deseja a quebra.)
Com os dois, você pode fazer qualquer coisa.
fonte
​
) é exatamente o que<wbr>
fez (iirc; já faz um tempo), mas é melhor suportado (universalmente hoje em dia). É exatamente o que eu estava procurando, pois não adiciona um hífen às palavras quebradas, permitindo, por exemplo, que os valores separados por vírgula sejam quebrados quando executados através de umas/,/,\​/g
substituição.Esta é uma solução crossbrowser que eu estava procurando há pouco tempo, que roda no cliente e usa o jQuery:
fonte
Sugiro usar
wbr
, para que o código possa ser escrito assim:Ele não conduzirá espaço entre caracteres, enquanto
­
não interromperá os espaços criados por quebras de linha.fonte
Usei com êxito o caractere hífen unicode suave em alguns navegadores de desktop e dispositivos móveis para resolver o problema.
O símbolo unicode é
\u00AD
e é muito fácil de inserir na string unicode do Pythons = u'Языки и методы програм\u00ADми\u00ADро\u00ADва\u00ADния'
.Outra solução é inserir o próprio caractere unicode, e a string de origem parecerá perfeitamente comum em editores como Sublime Text, Kate, Geany, etc (o cursor sentirá o símbolo invisível).
Editores hexadecimais de ferramentas internas podem automatizar essa tarefa facilmente.
Um argumento fácil é usar caracteres raros e visíveis, como
¦
, fáceis de copiar e colar, e substituí-los no hífen suave usando, por exemplo, script de front-end no$(document).ready(...)
. O código fonte comos = u'Языки и методы про¦гра¦м¦ми¦ро¦ва¦ния'.replace('¦', u'\u00AD')
é mais fácil de ler do ques = u'Языки и методы про\u00ADг\u00ADра\u00ADм\u00ADми\u00ADро\u00ADва\u00ADния'
.fonte
Às vezes, os navegadores da Web parecem mais tolerantes se você usar a cadeia Unicode
­
em vez da­
entidade.fonte
Se você tiver azar e ainda precisar usar o JSF 1, a única solução é usar o & # 173 ;, & shy; não funciona.
fonte
<wbr> e & tímido;
Hoje você pode usar os dois.
<wbr> use para quebrar e não coloque mais informações.
Exemplo, use para mostrar links:
&tímido; quando necessário, neste momento o texto será interrompido e adicionará um hífen.
Exemplo:
"É imprescindível; posi; tímido; vel pa & tímido; ra um ho & tímido; mem a & tímido; pren & tímido; der a & tímido; qui & tímido; lo que ele acha que já está & tímido; estar."
fonte