Таблиці
Для виведення табличних даних в HTML існує декілька тегів:
<table> - таблиця;
<tr> - строка таблиці;
<td> - чарунка таблиці;
<th> - чарунка заголовка таблиці;
// необов'язкові теги (браузер їх створює сам):
<thead> - заголовок таблиці;
<tbody> - тіло таблиці.
Приклад таблиці:
<table>
<tr>
<th>Продукція</th>
<th>Кількість</th>
</tr>
<tr>
<td>Олівці</td>
<td>70 шт.</td>
</tr>
<tr>
<td>Ручки</td>
<td>24 шт.</td>
</tr>
<tr>
<td>Фломастери</td>
<td>35 шт.</td>
</tr>
</table>
Результат буде дещо невиразним, без границь, оформлення:
| Продукція | Кількість |
|---|---|
| Олівці | 70 шт. |
| Ручки | 24 шт. |
| Фломастери | 35 шт. |
Зазвичай таблицям задають ширину, найчастіше - 100%. Також - потрібні бордери.
В наступному коді також представлені блоки thead та tbody, протестуйте в jsFiddle:
table { width: 100%; border: 1px solid silver; }
th, td { border: 1px solid silver; }
<table>
<thead>
<tr>
<th>Продукція</th>
<th>Кількість</th>
</tr>
<thead>
<tbody>
<tr>
<td>Олівці</td>
<td>70 шт.</td>
</tr>
<tr>
<td>Ручки</td>
<td>24 шт.</td>
</tr>
<tr>
<td>Фломастери</td>
<td>35 шт.</td>
</tr>
</tbody>
</table>
Щоб рамка була не подвійна, а одинарна - добавте стиль border-collapse: collapse.
Для об'єднання комірок використовуються атрибути:
<td colspan="3">
<td rowspan="2">
| Продукція | Кількість | |
|---|---|---|
| Вчора | Сьогодні | |
| Олівці кольорові і прості |
70 шт. | 23 шт. |
| 64 шт. | 11 шт. | |
| Ручки | 24 шт. | 20 шт. |
<table style="width: 100%;">
<thead>
<tr>
<th rowspan="2">Продукція</th>
<th colspan="2">Кількість</th>
</tr>
<tr>
<th>Вчора</th>
<th>Сьогодні</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2">Олівці кольорові<br>і прості</td>
<td>70 шт.</td>
<td>23 шт.</td>
</tr>
<tr>
<td>64 шт.</td>
<td>11 шт.</td>
</tr>
<tr>
<td>Ручки</td>
<td>24 шт.</td>
<td>20 шт.</td>
</tr>
</tbody>
</table>
Атрибути тега <table> (наразі не бажані до застосування):
cellspacing - задає зовнішні відступи довкола комірок.
cellpadding - задає внутрішні відступи всередині комірок.
Років 7 тому всі сайти версталися таблицями, без div. Наразі так досі створюються e-mail.
Властивості комірок
Увага! Не задавайте ніякі стилі для рядків, тобто, тегу <tr>. Але цей тег можна використовувати в селекторі:
table tr:nth-child(odd) td { background: silver; }
Висоту всім коміркам в рядку задає комірка з найбільшою висотою. В разі потреби можна задати висоту комірок в CSS. Для цього достатньо задати висоту лише першій.
Ширина всіх комірок в стовбчику задається шириною найширшої комірки.
Якщо таблиці задати конкретну ширину (наприклад, 100%), то ширина чарунок збільшується пропорційно (тут Боба пояснює як саме).
Стиль vertical-align дозволяє вирівняти контент по вертикалі, text-align - по горизонталі.
| - - - |
vertical-align: top; | vertical-align: middle; | vertical-align: bottom; |
Стиль table-layout: fixed дозволяє зробити всі колонки однакової ширини. По-замовчуванню використовується table-layout: auto.
table-layout: auto:
| 1 | Найдовша строка тексту в таблиці | Коротка строка |
table-layout: fixed:
| 2 | Найдовша строка тексту в таблиці | Коротка строка |