Portanto, tenho este código aqui:
<table>
<tr>
<td width="200px" valign="top">
<div class="left_menu">
<div class="menu_item">
<a href="#">Home</a>
</div>
</div>
</td>
<td width="1000px" valign="top">Content</td>
</tr>
</table>
com o CSS
.left_menu {
background: none repeat scroll 0 0 #333333;
border-radius: 5px 5px 5px 5px;
font-family: Arial,Helvetica,sans-serif;
font-size: 12px;
font-weight: bold;
padding: 5px;
}
.menu_item {
background: none repeat scroll 0 0 #CCCCCC;
border-bottom: 1px solid #999999;
border-radius: 5px 5px 5px 5px;
border-top: 1px solid #FFFFCC;
cursor: pointer;
padding: 5px;
}
Ele funciona bem no meu navegador e eu testei em todos os navegadores Mac e PC, mas alguém está reclamando que td
o width
de 200 fica mudando de largura. Não tenho ideia do que ele está falando. Alguém sabe por que ele ou ela está vendo a mudança de largura no td
?
html
css
html-table
width
user979331
fonte
fonte
Respostas:
Deveria ser:
ou
Observe que se sua célula contém algum conteúdo que não se encaixa nos 200px (como
somelongwordwithoutanyspaces
), a célula se estenderá, a menos que seu CSS contenhatable-layout: fixed
para a tabela.EDITAR
Como kristina childs observou em sua resposta, você deve evitar o
width
atributo e usar CSS inline (com ostyle
atributo). É uma boa prática separar estilo e estrutura tanto quanto possível.fonte
<table style="table-layout:fixed;">
A largura e / ou altura nas tabelas não são mais padrão; como diz Ianzz, eles estão obsoletos. Em vez disso, a melhor maneira de fazer isso é ter um elemento de bloco dentro da célula da tabela que manterá a célula aberta no tamanho desejado:
CSS
fonte
Isso forçará a largura estilizada
<td>
. Se o texto o sobrecarregar, ele se sobreporá ao outro<td>
texto. Portanto, tente usar consultas de mídia.fonte
table-layout:fixed
atribuí larguras fixas às colunas, então não posso mudarwidth
mais (com jquery).Você não pode especificar unidades em
width
/height
atributos de uma tabela; eles estão sempre em pixels, mas você não deve usá-los, pois estão obsoletos.fonte
Você pode tentar o "table-layout: fixed;" para sua mesa
150px ou a largura desejada.
Referência: https://css-tricks.com/fixing-tables-long-strings/
fonte
Você pode usar no
<td>
tag css:display:inline-block
Gostar:
<td style="display:inline-block">
fonte
tente usar
espero que esta ajuda
fonte
tente isto:
fonte
eu uso
para evitar quebra de referência: https://www.w3schools.com/tags/att_td_nowrap.asp
fonte
Usar
Isso forçará a tabela a ser definida como 100% de largura. Em seguida, use este código
(o id da tabela é dataTable e tem 3 colunas) para especificar o comprimento de cada célula
fonte
Observe que ajustar a largura de uma coluna no cabeçalho afetará toda a tabela
No meu caso, a largura no fio> tr estava substituindo a largura na mesa> tr> td diretamente.
fonte
Eu tentei com muitas soluções, mas não funcionou para mim, então tentei flexionar com a mesa e funcionou bem para mim com todas as funcionalidades da mesa, como colapso de borda e assim por diante, apenas a alteração é propriedade de exibição
Este era meu requisito de HTML
Meu CSS
fonte
Este problema é facilmente resolvido usando
min-width
emax-width
dentro de uma regra css.HTML
CSS
Isso forçará a primeira coluna a ter 80 pixels de largura. Normalmente, eu só uso max-width sem min-width para reinar em texto que é muito ocasionalmente longo de criar uma tabela que tem uma coluna superlarga que está quase vazia. A questão do OP era sobre definir uma largura fixa, portanto, as duas regras juntas. Em muitos navegadores
width:80px;
, o CSS é ignorado nas colunas da tabela. Definir a largura dentro do HTML funciona, mas não é a maneira como você deve fazer as coisas.Eu recomendaria usar regras de largura mínima e máxima, e não defini-las iguais, mas sim definir um intervalo. Dessa forma, a tabela pode fazer isso, mas você pode dar algumas dicas sobre o que fazer com conteúdo excessivamente longo.
Se eu quiser evitar que o texto se enrole e aumente a altura de uma linha - mas ainda possibilito que um usuário veja o texto completo, eu uso
white-space: nowrap;
na regra principal e, em seguida, aplico uma regra de foco que remove as regras de largura e agora para que o usuário possa ver o conteúdo completo ao passar o mouse sobre ele. Algo assim:CSS
Depende exatamente do que você está tentando alcançar. Espero que isso ajude alguém. PS Como um aparte, para iOS há uma correção para o hover não funcionar - consulte CSS Hover não funciona no iOS Safari e Chrome
fonte