Що замінює керамічну панель, простір клітинок, вирівнювання та вирівнювання у таблицях HTML5?


320

У Visual Studio я бачу такі попередження:

  • Валідація (HTML 5): Атрибут 'cellpadding' не є дійсним атрибутом елемента 'table'.
  • Валідація (HTML 5): Атрибут 'cellpacing' не є дійсним атрибутом елемента 'table'.
  • Перевірка (HTML 5): Атрибут 'valign' не є дійсним атрибутом елемента 'td'.
  • Перевірка (HTML 5): атрибут 'align' не є дійсним атрибутом елемента 'td'.

Якщо вони не є дійсними атрибутами в HTML5 , що замінює їх у CSS?


4
Я виявив, що навіть за допомогою HTML5 атрибути стільникових панелей та простору клітинок все ще потрібні. Тобто без чіткого декларування цих атрибутів застосовуються прокладки та пробіли за замовчуванням. Тому я вважаю, що я повинен завжди встановлювати їх на значення "0", щоб звести нанівець значення за замовчуванням. Цілком можливо, що вони застаріли, але браузери ще не знайшли їх. Значення за замовчуванням досі застосовуються у версії 37 Chrome.
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
Варто зауважити, що інтервал між межами, здається, працює лише тоді, коли використання цього властивості на столі також "гранично-згортається: роздільно";
Blowsie

3
@Samir - Здається, те, що 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;
}


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


1
inline css не рекомендується.
Самуель Рамзан

Так, ти правий. я не рекомендую. Переходимо до зовнішнього файлу css .ClassName {width: 100%; вирівнювання тексту: центр; вертикальне вирівнювання: вгору;} Спасибі
JaiSankarN
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.