Na minha tabela, defino a largura da primeira célula em uma coluna 100px
.
No entanto, quando o texto em uma das células nesta coluna é muito longo, a largura da coluna se torna maior que 100px
. Como eu poderia desativar essa expansão?
html
css
column-width
Misha Moroshko
fonte
fonte
table-layout:fixed;
é a soluçãoRespostas:
Eu brinquei um pouco porque tinha dificuldade em descobrir.
Você precisa definir a largura da célula (
th
outd
funcionou, eu defino os dois) E definatable-layout
comofixed
. Por alguma razão, a largura da célula parece permanecer fixa apenas se a largura da tabela também estiver definida (acho isso tolo, mas o que for).Além disso, é útil definir a
overflow
propriedadehidden
para impedir que qualquer texto extra saia da tabela.Você também deve deixar todos os limites e dimensionamentos para CSS.
Ok, então aqui está o que eu tenho:
Aqui está no JSFiddle
Esse cara teve um problema semelhante: larguras de células da tabela - fixando largura, quebrando / truncando palavras longas
fonte
overflow: visible
para tabelas de tamanho dinâmico, desde que o tamanho das células seja fixo e o estouro seja visível, não importa se o tamanho da tabela em si é maior ou menor que as células reais.Consulte: http://www.html5-tutorials.org/tables/changing-column-width/
Após a tag da tabela, use o elemento col. você não precisa de uma tag de fechamento.
Por exemplo, se você tivesse três colunas:
fonte
table-layout: fixed; width: 100%;
. Obrigado!col
disso. Ele sugere o uso de css aplicado a um<td>
(ou um<th
>) - w3schools.com/tags/att_td_width.aspBasta adicionar
<div>
tag dentro<td>
ou<th>
definir largura dentro<div>
. Isso irá ajudá-lo. Nada mais funciona.por exemplo.
fonte
style="width: 50px"
no<td>
<td>
não.Se você precisar de mais uma ou mais colunas de largura fixa enquanto outras devem ser redimensionadas, tente definir ambas
min-width
emax-width
o mesmo valor.fonte
table-layout: fixed;
o não.Você precisa escrever isso dentro do CSS correspondente
fonte
O que eu faço é:
Defina a largura td:
Defina a largura td com CSS:
Defina a largura novamente como max e min com CSS:
Parece um pouco repetitivo, mas me dá o resultado desejado. Para conseguir isso com muita facilidade, você pode precisar colocar os valores CSS em uma classe na sua folha de estilos:
então:
Coloque o atributo de classe como
<td>
desejar.fonte
Eu usei isso
fonte
Se você não deseja um layout fixo, especifique uma classe para o tamanho apropriado da coluna.
CSS:
HTML:
fonte
Também ajuda, colocar a última "célula de preenchimento", com a largura: auto . Isso ocupará o espaço restante e deixará todas as outras dimensões conforme especificado.
fonte
Faça a resposta aceita responder para telas pequenas quando menores que a largura fixa.
HTML:
CSS
JS Fiddle
https://jsfiddle.net/w9s3ebzt/
fonte
Configurando isso:
Trabalhou para mim.
fonte
KAsun tem a ideia certa. Aqui está o código correto ...
fonte
Conforme minha resposta aqui , também é possível usar um cabeçalho da tabela (que pode estar vazio) e aplicar larguras relativas para cada célula do cabeçalho da tabela. As larguras de todas as células no corpo da tabela estarão em conformidade com a largura do cabeçalho da coluna. Exemplo:
HTML
CSS
Ver resultado
Como alternativa, use
colgroup
como sugerido na resposta de Hyathin.fonte
Eu uso um elemento :: after na célula em que desejo definir uma largura mínima, independentemente do texto presente, assim:
Não preciso definir a largura no pai da tabela nem usar o layout da tabela.
fonte
Eu achei a resposta do KAsun funciona melhor usando vw em vez de px da seguinte forma:
<td><div style="width: 10vw" >...............</div></td>
Esse foi o único estilo necessário para ajustar a largura da coluna
fonte
Você não precisa definir
"fixed"
- tudo o que você precisa é definir,overflow:hidden
pois a largura da coluna está definida.fonte