Cosa sostituisce cellpadding, cellpacing, valign e align nelle tabelle HTML5?


320

In Visual Studio , visualizzo questi avvisi:

  • Convalida (HTML 5): l'attributo 'cellpadding' non è un attributo valido dell'elemento 'table'.
  • Convalida (HTML 5): l'attributo 'cellpacing' non è un attributo valido dell'elemento 'tabella'.
  • Convalida (HTML 5): l'attributo 'valign' non è un attributo valido dell'elemento 'td'.
  • Convalida (HTML 5): l'attributo 'align' non è un attributo valido dell'elemento 'td'.

Se non sono attributi validi in HTML5 , cosa li sostituisce in CSS?


4
Ho scoperto che anche con HTML5, gli attributi cellpad e cellpacing sono ancora richiesti. Vale a dire, senza dichiarare esplicitamente tali attributi, vengono applicati il ​​riempimento e la spaziatura predefiniti. Pertanto, trovo che devo sempre impostarli sul valore di "0" per annullare i valori predefiniti. È possibile che siano stati deprecati ma i browser non li hanno ancora rilevati. I valori predefiniti sono ancora applicati nella versione 37 di Chrome.
Aquarelle,

Risposte:


496
/* cellpadding */
th, td { padding: 5px; }

/* cellspacing */
table { border-collapse: separate; border-spacing: 5px; } /* cellspacing="5" */
table { border-collapse: collapse; border-spacing: 0; }   /* cellspacing="0" */

/* valign */
th, td { vertical-align: top; }

/* align (center) */
table { margin: 0 auto; }

6
Vale la pena notare che la spaziatura dei bordi sembra funzionare solo quando si utilizza questa proprietà anche nella tabella "border-collapse: separate;"
Blowsie,

3
@Samir - Sembra che la float:right;volontà farà il trucco. jsfiddle.net/HGFH7
drudge

70

Questo dovrebbe risolvere il tuo problema:

td {
    /* <http://www.w3.org/wiki/CSS/Properties/text-align>
     * left, right, center, justify, inherit
     */
    text-align: center;
    /* <http://www.w3.org/wiki/CSS/Properties/vertical-align>
     * baseline, sub, super, top, text-top, middle,
     * bottom, text-bottom, length, or a value in percentage
     */
    vertical-align: top;
}


13

Su un tavolo particolare

<table style="border-collapse: separate; border-spacing: 10px;" >
    <tr>
      <td>Hi</td>
      <td>Hello</td>
    <tr/>
    <tr>
      <td>Hola</td>
      <td>Oi!</td>
    <tr/>
</table>


3

In alternativa, può utilizzare per una tabella particolare

 <table style="width:1000px; height:100px;">
    <tr>
        <td align="center" valign="top">Text</td> //Remove it
        <td class="tableFormatter">Text></td>
    </tr>
</table>

Aggiungi questo CSS in un file esterno

.tableFormatter
{
width:100%;
vertical-align:top;
text-align:center;
}


1
CSS in linea non raccomandato.
Samuel Ramzan,

Si hai ragione. non lo consiglio. Andiamo per il file CSS esterno .ClassName {larghezza: 100%; text-align: center; vertical-align: top;} Grazie
JaiSankarN il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.