Atualmente, estou me perguntando qual é a diferença entre os dois. Quando usei os dois, eles parecem quebrar a palavra se não estiver encaixando no recipiente. Mas por que o W3C fez duas maneiras de fazer isso?
397
A especificação W3 que fala sobre isso parece sugerir que word-break: break-all
é para exigir um comportamento específico com o texto CJK (chinês, japonês e coreano), enquanto que word-wrap: break-word
é o comportamento mais geral, que não reconhece CJK.
word-break
especifica oportunidades de quebra automática de linha entre letras ..." A especificação do W3C usa o texto CLK como exemplo , mas esse não é o único uso pretendido. É comum usarword-break
em conjunto com cadeias longas (como URLs ou linhas de código) quando você deseja que elas quebrem na largura do contêiner - especialmente se o contêiner for umpre
elemento ou célula da tabela em que aword-wrap
propriedade pode não funcionar conforme o esperado .word-wrap: break-word
mudou recentemente paraoverflow-wrap: break-word
word-break: break-all
Portanto, se você tiver muitas extensões de tamanho fixo que obtêm conteúdo dinamicamente, pode preferir usar
word-wrap: break-word
, pois dessa forma, apenas as palavras contínuas são divididas no meio e, no caso de uma frase com muitas palavras, os espaços são ajustados para obter palavras intactas. (sem intervalo dentro de uma palavra).E se isso não importa, escolha qualquer um.
fonte
Com
word-break
, uma palavra muito longa começa no ponto em que deve começar e está sendo quebrada pelo tempo que for necessárioNo entanto, com
word-wrap
, uma palavra muito longa NÃO começará no ponto em que deve começar. enrola para a próxima linha e, em seguida, é interrompida pelo tempo necessáriofonte
break-word
. Eu achei irritantemente queword-break
quebra urls, mas nãoword-wrap
. Ambos usandobreak-word
tem que partir css-tricks.com/snippets/css/...word-wrap
foi renomeado paraoverflow-wrap
provavelmente evitar essa confusão.Agora é isso que temos:
transbordamento
Valores possíveis:
normal : indica que as linhas só podem quebrar nos pontos de quebra de palavras normais.
break-word : indica que palavras normalmente inquebráveis podem ser quebradas em pontos arbitrários se não houver pontos de interrupção aceitáveis na linha.
fonte .
quebra de palavra
fonte .
Agora, voltando à sua pergunta, a principal diferença entre quebra de quebra e quebra de palavra é que a primeira determina o comportamento em uma situação de excesso , enquanto a segunda determina o comportamento em uma situação normal (sem excesso). Uma situação de estouro ocorre quando o contêiner não possui espaço suficiente para conter o texto. Quebrar linhas nessa situação não ajuda porque não há espaço (imagine uma caixa com largura e altura fixas).
Assim:
overflow-wrap: break-word
: Em uma situação de estouro, quebre as palavras.word-break: break-all
: Em uma situação normal, basta quebrar as palavras no final da linha. Um estouro não é necessário.fonte
overflow-wrap
Euword-wrap
não os fiz embrulhar. Presumivelmente, porque as células da tabela sem largura fixa se expandem em vez de estourarem. Em vez disso, a mesa ficou ampla e colidiu com outros elementos.word-break
por outro lado, consertou.table-layout: fixed;
(possivelmente junto comwidth
/max-width
) pode fazê-lo funcionar,overflow-wrap/word-wrap
mas depende do caso de uso específico; assim comoword-break
pode não ser o que você deseja.Pelo menos no Firefox (a partir da v24) e Chrome (a partir da v30), quando aplicado ao conteúdo em um
table
elemento:word-wrap:break-word
não causará quebra de palavras longas, o que pode resultar na tabela exceder os limites de seu contêiner;
word-break:break-all
irá resultar em palavras de embrulho, e a mesa de montagem dentro do seu contentor.
demonstração do jsfiddle .
fonte
table-layout:fixed
para fazer com que a tabela não se expanda ao usarword-wrap:break-work
table-layout:fixed
word-wrap
em conjunto compre
tags no Firefox, a menos que elas tenham uma largura fixa definida. Usarword-break
produz o resultado desejado. Vinculei a esta resposta em um comentário postado acima porque demonstra um caso de uso comum.É tudo o que posso descobrir. Não tenho certeza se isso ajuda, mas pensei em adicioná-lo à mistura.
QUEBRA DE LINHA
Esta propriedade especifica se a linha renderizada atual deve ser interrompida se o conteúdo exceder o limite da caixa de renderização especificada para um elemento (isso é semelhante em alguns aspectos às propriedades 'clip' e 'overflow' na intenção). Essa propriedade deve ser aplicada apenas se o elemento tiver uma renderização visual, for um elemento embutido com altura / largura explícitas, estiver absolutamente posicionado e / ou for um elemento de bloco.
WORD-BREAK
Esta propriedade controla o comportamento de quebra de linha dentro das palavras. É especialmente útil nos casos em que vários idiomas são usados em um elemento.
fonte
word-wrap
eword-break
que tanto pode ter o valorbreak-word
Há uma enorme diferença.
break-all
é basicamente inutilizável para renderizar texto legível.Digamos que você tenha a string
This is a text from an old magazine
em um contêiner que cabe apenas 6 caracteres por linha.word-break: break-all
Como você pode ver, o resultado é terrível.
break-all
tentará encaixar o máximo de caracteres em cada linha possível, dividirá até uma palavra de 2 letras como "é" em 2 linhas! É ridículo. É por isso quebreak-all
raramente é usado.word-wrap: break-word
break-word
quebrará apenas palavras longas demais para caber no contêiner (como "magazine", com 8 caracteres e o contêiner apenas com 6 caracteres). Ele nunca quebrará as palavras que poderiam caber no contêiner por inteiro, mas as empurrará para uma nova linha.fonte
word-break:break-all
:para continuar na borda e, em seguida, quebre a nova linha.
word-wrap:break-word
:No início, a quebra automática de linha na nova linha e depois a borda.
Exemplo:
fonte
A partir das respectivas especificações do W3 - que são bastante pouco claras devido à falta de contexto - pode-se deduzir o seguinte:
word-break: break-all
é para separar palavras estrangeiras não CJK (digamos ocidentais) em escritos de caracteres CJK (chinês, japonês ou coreano).word-wrap: break-word
é para quebra de palavras em um idioma não misto (digamos apenas ocidental).Pelo menos, essas eram as intenções do W3. O que realmente aconteceu foi uma grande confusão com incompatibilidades do navegador como resultado. Aqui está uma excelente descrição dos vários problemas envolvidos .
O seguinte snippet de código pode servir como um resumo de como obter quebra de linha usando CSS em um ambiente de navegador cruzado:
fonte
Além dos comentários anteriores, o suporte ao navegador para
word-wrap
parece ser um pouco melhor do que paraword-break
.fonte