No meu documento HTML, tenho uma tabela com duas colunas e várias linhas. Como posso aumentar o espaço entre a primeira e a segunda coluna com css? Tentei aplicar "margin-right: 10px;" para cada uma das células do lado esquerdo, mas sem efeito.
95
Respostas:
Aplique isso ao seu primeiro
<td>
:Exemplo de HTML:
fonte
border-collapse: separate
(houve um erro de digitação na grafiaseparate
acima)border-spacing: 5px;
border-spacing
também adiciona espaço entre as linhas. Infelizmente, não há uma propriedade separada para espaçamento vertical e horizontal.border-spacing
aceita dois argumentos - um para horizontal e outro para vertical.Um aviso: embora
padding-right
possa resolver seu problema (visual) específico, não é a maneira certa de adicionar espaçamento entre as células da tabela. O quepadding-right
faz para uma célula é semelhante ao que faz para a maioria dos outros elementos: adiciona espaço dentro da célula. Se as células não tiverem uma borda ou cor de fundo ou qualquer outra coisa que denuncie o jogo, isso pode imitar o efeito de definir o espaço entre as células, mas não o contrário.Como alguém observou, as especificações de margem são ignoradas para células da tabela:
Especificação CSS 2.1 - Tabelas - Layout visual do conteúdo da tabela
Qual é a maneira "certa" então? Se você está procurando substituir o
cellspacing
atributo da tabela, entãoborder-spacing
(comborder-collapse
desativado) é uma substituição. No entanto, se as "margens" por célula forem necessárias, não tenho certeza de como isso pode ser alcançado corretamente usando CSS. O único hack em que consigo pensar é usarpadding
como descrito acima, evitar qualquer estilo das células (cores de fundo, bordas, etc.) e, em vez disso, usar DIVs de contêiner dentro das células para implementar esse estilo.Eu não sou um especialista em CSS, então posso estar errado no acima (o que seria ótimo saber! Eu também gostaria de uma solução CSS de margem de célula de tabela).
Felicidades!
fonte
Se você não pode usar preenchimento (por exemplo, você tem bordas em td) tente isto
fonte
Sei que isso é um tanto tardio, mas, para registro, você também pode usar seletores CSS para fazer isso (eliminando a necessidade de estilos embutidos). Este CSS aplica preenchimento à primeira coluna de cada linha:
E este seria o seu HTML, sem CSS !:
Isso permite uma marcação muito mais elegante, especialmente nos casos em que você precisa fazer várias formatações específicas com CSS.
fonte
margem não funciona, infelizmente, em células individuais, no entanto, você pode adicionar colunas extras entre as duas células nas quais deseja colocar um espaço entre ... outra opção é usar uma borda com a mesma cor do fundo ...
fonte
Você pode simplesmente fazer isso:
Nenhum CSS é necessário :) Este 10px é o seu espaço.
fonte
Experimente
padding-right
. Você não tem permissão para colocarmargin
's entre as células.fonte
Usando o recolhimento da borda: separar; não funcionou para mim, porque eu só preciso de uma margem entre as células da mesa e não nas laterais da mesa.
Eu descobri a próxima solução:
- CSS
- HTML
fonte
Este trabalho solução para
td
é essa necessidade tantoborder
epadding
para denominar.(Testado no Chrome 32, IE 11, Firefox 25)
Atualizado em 2016
Firefox agora oferece suporte sem
inline-block
e um conjuntowidth
fonte
Você não pode destacar colunas individuais em uma célula dessa maneira. Em minha opinião, sua melhor opção é adicionar um
style='padding-left:10px'
na segunda coluna e aplicar os estilos em um div ou elemento interno. Desta forma, você pode alcançar a ilusão de um espaço maior.fonte
Se você tiver controle da largura da tabela, insira um preenchimento à esquerda em todas as células da tabela e insira uma margem esquerda negativa em toda a tabela.
Observe que a largura da tabela deve incluir o preenchimento / largura da margem. Usando o acima como exemplo, a largura visual da tabela será de 700px.
Esta não é a melhor solução se você estiver usando bordas nas células da tabela.
fonte
SOLUÇÃO
Descobri que a melhor maneira de resolver esse problema era uma combinação de tentativa e erro e leitura do que foi escrito antes de mim:
http://jsfiddle.net/MG4hD/
Como você pode ver, tenho algumas coisas bem complicadas acontecendo ... mas o principal fator para fazer isso parecer bom são:
ELEMENTO PAI (UL): colapso da borda: separado; espaçamento de borda: .25em; margem esquerda: -.25em;
ELEMENTOS DE CRIANÇA (LI): display: célula de tabela; alinhamento vertical: meio;
HTML
CSS
fonte
Seguindo a solução de Cian de definir uma borda no lugar de uma margem, descobri que você pode definir a cor da borda como transparente para evitar ter que corresponder à cor do fundo. Funciona em FF17, IE9, Chrome v23. Parece uma solução decente, desde que você também não precise de uma borda real.
fonte
Usar preenchimento não é a maneira correta de fazer isso, pode mudar a aparência, mas não é o que você queria. Isso pode resolver seu problema.
fonte
Você pode usar os dois:
Mas é melhor usar com % .
fonte
%
Se o preenchimento não estiver funcionando para você, outra solução é adicionar colunas extras e definir uma margem por meio da largura usando
<colgroup>
. Nenhuma das soluções de preenchimento acima estava funcionando para mim, pois eu estava tentando dar uma margem à própria borda da célula, e isso foi o que resolveu o problema no final:Defina o estilo das bordas das células da tabela usando: nth-child para que a segunda e a terceira colunas pareçam ser uma única coluna.
fonte