Enchimento de mesa não funcional

Tenho uma mesa que se senta dentro de um div pai cheio de texto corporal e outro conteúdo. Tenho o seguinte CSS que não parece funcionar:

table {width:100%; padding: 0 50px 0 50px;}

Quando eu uso margens em vez de enchimento, ele funciona-no entanto, com largura:100%, usando margens retira a coisa toda do div pai. Eu acho que eu poderia reduzir a largura ou especificar uma quantidade exata de pixels, mas o resto das escalas do site com o tamanho da tela e eu gostaria que isso funcionasse assim, também.

Author: Brian Tompsett - 汤莱恩, 2014-02-19

3 answers

Existem algumas propriedades especiais relacionadas com as tabelas. O que você está procurando é border-spacing.

table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 50px;
}

Exemplo: http://jsfiddle.net/feeela/fPuQ6/

Atualização: Depois de brincar com o meu próprio violino devo admitir, que estava errado ao dizer que "uma mesa não tem um remo". O preenchimento na mesa está funcionando bem – pelo menos quando visto em cromo e Ópera (12). O seguinte excerto deve querer que você também queira:

table {
    width: 100%;
    padding: 0 50px 0 50px;
}

Versão actualizada do violino: http://jsfiddle.net/feeela/fPuQ6/3/

No entanto, ainda me pergunto porque é que o enchimento não é adicionado à largura como para um elemento com display: block;.

Ver além disso:

 14
Author: feeela, 2014-03-29 20:28:56

A resposta anterior mostra que o css pode definir a direcção da ea separadamente. Mas uma solução css muito mais simples que replica o antigo estilo table cellpadding="7" border="1" pode ser a seguinte. Em CSS:

table { 
  border-collapse:collapse;
  width: 100%;
}
td {
  padding: 7px;
  border:1px solid;
} 

Mostrado neste violino: http://jsfiddle.net/b5NW5/77

 3
Author: murspieg, 2015-09-06 11:41:39

Pode adicionar o enchimento da célula na definição da tabela ou, se quiser usar o CSS, então use:

Se utilizar CSS:

<style type="text\css">
.table {
        width: 100%;        
        border-top:1px solid red;
        border-right:1px solid red;
        border-collapse:collapse;
    }
.table td {
    padding: 7px;
    border-bottom:1px solid red;
    border-left:1px solid red;
}
</style>

<table class="table">
    <tr><td>Cell1a</td><td>Cell1b</td><td>Cell1c</td></tr>
    <tr><td>Cell2a</td><td>Cell2b</td><td>Cell2c</td></tr>
    <tr><td>Cell3a</td><td>Cell3b</td><td>Cell3c</td></tr>
</table>


Se utilizar inline:

<table cellpadding="9" cellspacing="5" style="border-collapse:collapse;" border="1">
    <tr><td>Cell1a</td><td>Cell1b</td><td>Cell1c</td></tr>
    <tr><td>Cell2a</td><td>Cell2b</td><td>Cell2c</td></tr>
    <tr><td>Cell3a</td><td>Cell3b</td><td>Cell3c</td></tr>
</table>
Você pode ver isso em ação aqui: http://jsfiddle.net/b5NW5/1/ Espero que ajude.
 2
Author: kheya, 2014-02-18 20:32:05