Eu quero quebrar algum texto que é adicionado a um <td>
elemento. Eu tentei com style="word-wrap: break-word;" width="15%"
. Mas não está encapsulando o texto. É obrigatório fornecer 100% de largura? Como tenho outros controles para exibir, apenas 15% da largura está disponível.
html
css
html-table
word-wrap
zool
fonte
fonte
Respostas:
Para quebrar o texto TD
Estilo da tabela do primeiro conjunto
depois defina o TD Style
fonte
white-space: normal
no estilo td para obter o embrulho para o trabalho (em vez de aword-wrap:break-word
)white-space:normal;
white-space: pre-wrap
se você precisar preservar o espaço em branco.As tabelas HTML suportam um estilo css "layout da tabela: fixo" que impede que o agente do usuário adapte as larguras da coluna ao seu conteúdo. Você pode querer usá-lo.
fonte
Eu acredito que você encontrou o problema 22 das tabelas. As tabelas são ótimas para agrupar o conteúdo em uma estrutura tabular e fazem um trabalho maravilhoso de "esticar" para atender às necessidades do conteúdo que elas contêm.
Por padrão, as células da tabela se estendem para caber no conteúdo ... portanto, seu texto apenas o torna mais amplo.
Existem algumas soluções.
1.) Você pode tentar definir uma largura máxima no TD.
2.) Você pode tentar colocar seu texto em um elemento de quebra automática (por exemplo, um espaço) e definir restrições nele.
Esteja ciente de que as versões mais antigas do IE não suportam largura mínima / máxima.
Como o IE não suporta largura máxima nativamente, você precisará adicionar um hack, se quiser forçá-lo. Existem várias maneiras de adicionar um hack, este é apenas um.
No carregamento da página, apenas para o IE6, obtenha a largura renderizada da tabela (em pixels), obtenha 15% disso e aplique-a como a largura ao primeiro TD nessa coluna (ou TH se você tiver cabeçalhos) novamente, em pixels .
fonte
table-layout:fixed
resolverá o problema da célula em expansão, mas criará um novo. Por padrão, o IE oculta o estouro, mas o Mozilla o processa fora da caixa.Outra solução seria usar:
overflow:hidden;width:?px
fonte
Créditos para http://www.blakems.com/archives/000077.html
fonte
Isso funcionou para mim com algumas estruturas css (material design lite [MDL]).
fonte
usar
word-break
que pode ser usado sem stylingtable
paratable-layout: fixed
fonte
Isso funciona muito bem:
Você pode usar a mesma largura para todos os seus
<div
, ou ajustar a largura em cada caso para quebrar seu texto onde quiser.Dessa forma, você não precisa se preocupar com larguras de tabelas fixas ou com css complexo.
fonte
Eu tive alguns dos meus
td
s com:Isso resolveu para mim:
fonte
Para tornar a largura da célula exatamente igual à palavra mais longa do texto, apenas defina a largura da célula como
1px
ie
Isso é experimental e eu vim a saber sobre isso ao tentar tentativa e erro
Violino ao vivo: http://jsfiddle.net/harshjv/5e2oLL8L/2/
fonte
É possível que isso funcione, mas pode ser um incômodo em algum momento no futuro (se não imediatamente).
A justificativa para
span
isso é que, como apontado por outros, a<td>
normalmente se expande para acomodar o conteúdo, enquanto a<span>
pode ser dada - e espera-se manter - uma largura definida; ooverflow: hidden
objetivo é, mas não pode, ocultar o que de outra forma faria com que a<td>
expansão se expandisse.Eu recomendo usar a
title
propriedade span para mostrar o texto que está presente (ou recortado) na célula visual, para que o texto ainda esteja disponível (e se você não quiser / precisar que as pessoas o vejam, por que tê-lo em primeiro lugar, eu acho ...).Além disso, se você definir uma largura para o
td {...}
td será expandido (ou potencialmente contraído, mas duvido) para preencher sua largura implícita (como eu acho que isso parece sertable-width/number-of-cells
), uma largura de tabela especificada não parece criar o mesmo problema.A desvantagem é a marcação adicional usada para apresentação.
fonte
Na verdade, a disposição do texto acontece automaticamente nas tabelas. As pessoas TOLICE cometer durante o teste é assumir hipoteticamente uma longa seqüência como "ggggggggggggggggggggggggggggggggggggggggggggggg" e se queixam de que não quebra. Praticamente não há uma palavra em inglês que seja tão longa e, mesmo que exista, há uma pequena chance de que ela seja usada dentro dela
<td>
.Tente testar com frases como "A contraposição é supersticiosa em circunstâncias predeterminadas".
fonte
Aplique classes aos seus TDs, aplique as larguras apropriadas (lembre-se de deixar uma delas sem largura para que assuma o restante da largura) e, em seguida, aplique os estilos apropriados. Copie e cole o código abaixo em um editor e visualize-o em um navegador para vê-lo funcionar.
fonte
fonte