Em uma tabela HTML, o cellpadding
e cellspacing
pode ser definido assim:
<table cellspacing="1" cellpadding="1">
Como o mesmo pode ser feito usando CSS?
html
css
html-table
alignment
kokos
fonte
fonte
width:auto
,border-collapse
pode não funcionar como esperado.Respostas:
Fundamentos
Para controlar "cellpadding" em CSS, você pode simplesmente usar
padding
nas células da tabela. Por exemplo, para 10 px de "cellpadding":Para "cellpacing", você pode aplicar a
border-spacing
propriedade CSS à sua tabela. Por exemplo, para 10 px de "espaçamento entre células":Essa propriedade permitirá até espaçamento horizontal e vertical separado, algo que você não poderia fazer com o "espaçamento de células" da velha escola.
Problemas no IE <= 7
Isso funcionará em quase todos os navegadores populares, exceto no Internet Explorer, até o Internet Explorer 7, onde você está quase sem sorte. Eu digo "quase" porque esses navegadores ainda oferecem suporte à
border-collapse
propriedade, que mescla as bordas das células da tabela adjacentes. Se você estiver tentando eliminar o espaçamento entre células (ou sejacellspacing="0"
),border-collapse:collapse
deverá ter o mesmo efeito: sem espaço entre as células da tabela. Porém, esse suporte é incorreto, pois não substitui umcellspacing
atributo HTML existente no elemento da tabela.Em resumo: para navegadores que não sejam o Internet Explorer 5-7,
border-spacing
lida com você. Para o Internet Explorer, se sua situação estiver correta (você deseja 0 espaçamento entre células e sua tabela ainda não a define), você pode usá-loborder-collapse:collapse
.Nota: Para obter uma excelente visão geral das propriedades CSS que podem ser aplicadas a tabelas e para quais navegadores, consulte esta fantástica página Quirksmode .
fonte
Padrão
O comportamento padrão do navegador é equivalente a:
Cellpadding
Define a quantidade de espaço entre o conteúdo da célula e a parede celular
Espaçamento entre células
Controla o espaço entre as células da tabela
Ambos
Ambos (especiais)
Tente você mesmo!
Aqui você pode encontrar a antiga maneira HTML de conseguir isso.
fonte
fonte
cellspacing=0
equivalente. O equivalente paracellspacing=1
é completamente diferente. Veja a resposta aceita.table td
etable th
apenas deveria sertd
e,th
respectivamente? Funciona de qualquer maneira, mas um seletor menor significa uma correspondência um pouco mais rápidatable > tr > td
etable > tr > th
. Isso é quase tão rápido comotr
eth
, e é garantido para o trabalho se você tiver uma tabela aninhada. Apenas a minha 2ctable
seletor é necessário? IIRC, a<td>
é inválido, a menos que esteja dentro de<tr>
.Definir margens nas células da tabela realmente não tem nenhum efeito, até onde eu sei. O verdadeiro equivalente CSS para
cellspacing
éborder-spacing
- mas não funciona no Internet Explorer.Você pode usar
border-collapse: collapse
para definir com segurança o espaçamento das células como 0, como mencionado, mas para qualquer outro valor, acho que a única maneira entre navegadores é continuar usando ocellspacing
atributo.fonte
border-collapse
só funciona no IE 5-7 se a tabela ainda não tiver umcellspacing
atributo definido. Escrevi uma resposta abrangente que mescla todas as partes corretas das outras respostas nesta página, caso isso seja útil.Esse hack funciona para o Internet Explorer 6 e posterior, Google Chrome , Firefox e Opera :
o
*
declaração é para o Internet Explorer 6 e 7 e outros navegadores a ignoram adequadamente.expression('separate', cellSpacing = '10px')
retorna'separate'
, mas ambas as instruções são executadas, pois no JavaScript você pode passar mais argumentos do que o esperado e todos eles serão avaliados.fonte
Para aqueles que desejam um valor de espaçamento entre células diferente de zero, o seguinte CSS funcionou para mim, mas só posso testá-lo no Firefox.
Consulte o link Quirksmode publicado em outro lugar para obter detalhes de compatibilidade. Parece que pode não funcionar com versões mais antigas do Internet Explorer.
fonte
A solução simples para esse problema é:
fonte
Além disso, se você quiser
cellspacing="0"
, não se esqueça de adicionarborder-collapse: collapse
em suatable
folha de estilo 's.fonte
Quebra o conteúdo da célula com uma div e você pode fazer o que quiser, mas é necessário quebrar todas as células da coluna para obter um efeito uniforme. Por exemplo, para obter margens esquerda e direita mais amplas:
Então o CSS será,
Sim, é um aborrecimento. Sim, funciona com o Internet Explorer. Na verdade, eu só testei isso com o Internet Explorer, porque é tudo o que podemos usar no trabalho.
fonte
Basta usar
border-collapse: collapse
para a sua mesa epadding
parath
outd
.fonte
Esse estilo é para redefinição completa de tabelas - preenchimento de célula , espaçamento de célula e bordas .
Eu tinha esse estilo no meu arquivo reset.css:
fonte
TBH. Por toda a fannying com CSS, você também pode usar,
cellpadding="0"
cellspacing="0"
pois eles não são preteridos ...Alguém mais sugerindo margens no
<td>
obviamente não tentou isso.fonte
fonte
Basta usar regras de preenchimento CSS com dados da tabela:
E para espaçamento de borda:
No entanto, ele pode criar problemas na versão mais antiga de navegadores como o Internet Explorer, devido à implementação diferencial do modelo de caixa.
fonte
Pelo que entendi das classificações do W3C, é que
<table>
s servem para exibir 'apenas' os dados.Com base nisso, achei muito mais fácil criar um
<div>
com os planos de fundo e tudo mais e ter uma tabela com dados flutuando sobre ele usandoposition: absolute;
ebackground: transparent;
...Ele funciona no Chrome, Internet Explorer (6 e posterior) e Mozilla Firefox (2 e posterior).
As margens são usados (ou de qualquer maneira significava) para criar um espaçador entre os elementos do recipiente, como
<table>
,<div>
e<form>
, não<tr>
,<td>
,<span>
or<input>
. Usá-lo para qualquer coisa que não seja elementos de contêiner manterá você ocupado ajustando seu site para futuras atualizações do navegador.fonte
CSS:
fonte
Você pode definir facilmente o preenchimento dentro das células da tabela usando a propriedade CSS padding. É uma maneira válida de produzir o mesmo efeito que o atributo cellpadding da tabela.
Da mesma forma, você pode usar a propriedade CSS border-espaçamento para aplicar o espaçamento entre as bordas adjacentes das células da tabela, como o atributo cellpacing. No entanto, para trabalhar com espaçamento entre bordas, o valor da propriedade colapsar entre bordas deve ser separado, o que é o padrão.
fonte
Tente o seguinte:
Ou tente o seguinte:
fonte
Eu usei
!important
após o colapso da fronteira comoe funciona para mim no IE7. Parece substituir o atributo cellpacing.
fonte
!important
seria necessário apenas para substituir outras configurações de CSS em uma situação complexa (e mesmo assim principalmente na abordagem errada).!important
, que poderia ter sido incluída como um comentário em vez de outra resposta.cell-padding
pode ser fornecidopadding
em CSS enquantocell-spacing
pode ser definido pela configuraçãoborder-spacing
de tabela.Violino .
fonte
Se
margin
não funcionar, tente conjuntodisplay
detr
parablock
e, em seguida, a margem vai funcionar.fonte
Para tabelas, espaçamento e preenchimento de célula são obsoletos no HTML 5.
Agora, para espaçamento entre células, é necessário usar espaçamento entre bordas. E para o cellpadding você precisa usar o colapso de borda.
E não use isso no seu código HTML5. Sempre tente usar esses valores em um arquivo CSS 3.
fonte
fonte
Em uma tabela HTML, o
cellpadding
ecellspacing
pode ser definido assim:Para preenchimento de células :
Basta ligar para o
td/th
celular simplespadding
.Exemplo:
Mostrar snippet de código
Para espaçamento de células
Basta ligar para simples
table
border-spacing
Exemplo:
Mostrar snippet de código
Mais estilo de tabela por link de origem CSS aqui você obtém mais estilo de tabela por CSS .
fonte
Você pode simplesmente fazer algo assim no seu CSS, usando
border-spacing
epadding
:fonte
Que tal adicionar o estilo diretamente à própria tabela? Isso é em vez de usar
table
no seu CSS, que é uma abordagem MAU se você tiver várias tabelas na sua página:fonte
td { padding: ... }
outable { border-spacing: ... }
, em vez de aplicá-la diretamente na tabela. Isso não acrescenta nada. Como eu disse, quando você tem várias tabelas na sua página e não deseja afetá-las, não deseja! Não precisamos de uma página inteira de respostas dizendo "Use a folha de estilo!", Quando talvez essa seja a última coisa que você deseja, porque deseja formatar apenas uma célula ou tabela. É quando aplicá-lotable
outd
é indesejável e criar uma nova classe, pois é um exagero.table#someId
).Eu sugiro isso e todas as células da tabela específica são afetadas.
fonte
Você pode verificar o código abaixo, basta criar um
index.html
e executá-lo.RESULTADO :
fonte