Co zastępuje wstawianie komórek, odstępy między komórkami, wartościowanie i wyrównywanie w tabelach HTML5?

320

W Visual Studio widzę te ostrzeżenia:

  • Walidacja (HTML 5): Atrybut „cellpadding” nie jest prawidłowym atrybutem elementu „table”.
  • Walidacja (HTML 5): Atrybut „odstęp komórek” nie jest prawidłowym atrybutem elementu „tabela”.
  • Walidacja (HTML 5): Atrybut „valign” nie jest prawidłowym atrybutem elementu „td”.
  • Walidacja (HTML 5): Atrybut „align” nie jest prawidłowym atrybutem elementu „td”.

Jeśli nie są poprawnymi atrybutami w HTML5 , co je zastępuje w CSS?

Code Maverick
źródło
4
Przekonałem się, że nawet w przypadku HTML5 atrybuty padania komórek i odstępów między komórkami są nadal wymagane. To znaczy, bez wyraźnego zadeklarowania tych atrybutów, stosowane są domyślne wypełnienia i odstępy. Dlatego uważam, że zawsze muszę ustawiać je na wartość „0”, aby zerować wartości domyślne. Możliwe, że zostały wycofane, ale przeglądarki jeszcze ich nie wykryły. Domyślne wartości są nadal stosowane w wersji 37 Chrome.
Aquarelle

Odpowiedzi:

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; }
popychadło
źródło
6
Warto zauważyć, że odstępy między krawędziami wydają się działać tylko wtedy, gdy ta właściwość jest używana również na stole „border-collapse: separ;”
Blowsie
3
@Samir - Wydaje się, że załatwi sprawę float:right;. jsfiddle.net/HGFH7
drudge
70

To powinno rozwiązać twój problem:

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;
}
Cole Johnson
źródło
Do Twojej wiadomości: przeniesiono z stackoverflow.com/questions/10367387/…
Shog9,
13

Na konkretnym stole

<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>

Xtian11
źródło
3

Alternatywnie, można użyć do konkretnego stołu

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

Dodaj ten plik css do pliku zewnętrznego

.tableFormatter
{
width:100%;
vertical-align:top;
text-align:center;
}
JaiSankarN
źródło
Do Twojej wiadomości: przeniesiono z stackoverflow.com/questions/10367387/…
Shog9,
1
wbudowane css nie jest zalecane.
Samuel Ramzan,
Tak masz rację. nie polecam. Idziemy po zewnętrzny plik css .ClassName {szerokość: 100%; wyrównanie tekstu: środek; vertical-align: top;} Dzięki
JaiSankarN