Что заменяет cellpadding, cellspacing, valign и align в таблицах HTML5?


320

В Visual Studio я вижу эти предупреждения:

  • Проверка (HTML 5): атрибут 'cellpadding' не является допустимым атрибутом элемента 'table'.
  • Проверка (HTML 5): атрибут «cellspacing» не является допустимым атрибутом элемента «table».
  • Проверка (HTML 5): Атрибут 'valign' не является допустимым атрибутом элемента 'td'.
  • Проверка (HTML 5): Атрибут 'align' не является допустимым атрибутом элемента 'td'.

Если они не являются допустимыми атрибутами в HTML5 , что заменяет их в CSS?


4
Я обнаружил, что даже в HTML5 атрибуты cellpadding и cellspacing все еще необходимы. То есть без явного объявления этих атрибутов применяются отступы по умолчанию и интервалы. Поэтому я обнаружил, что всегда должен устанавливать для них значение «0», чтобы обнулить значения по умолчанию. Возможно, они устарели, но браузеры их еще не заметили. Значения по умолчанию все еще применяются в Chrome версии 37.
Aquarelle

Ответы:


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
Стоит отметить, что интервал границ, кажется, работает только при использовании этого свойства в таблице "border-collapse: Отдельно;"
Blowie

3
@ Самир - кажется, что добьется цели float:right;. jsfiddle.net/HGFH7
Drudge

70

Это должно решить вашу проблему:

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

К вашему сведению: перенесено из stackoverflow.com/questions/10367387/…
Shog9

13

На конкретном столе

<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

В качестве альтернативы можно использовать для конкретной таблицы

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

Добавить эту CSS во внешний файл

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

К вашему сведению: перенесено из stackoverflow.com/questions/10367387/…
Shog9

1
встроенный CSS не рекомендуется.
Самуэль Рамзан,

Да ты прав. я не рекомендую. Мы идем для внешнего CSS-файла .ClassName {ширина: 100%; выравнивание текста: по центру; вертикальное выравнивание: верх;} Спасибо
JaiSankarN
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.