DevSkillRoad

Таблицы в HTML

📊 Теги table, tr, td, th, объединение ячеек

Таблицы используются для отображения структурированных данных — матриц, расписаний, прайс-листов, сравнений. Не используйте таблицы для вёрстки (раскладки блоков на странице) — для этого есть CSS.

1. Простая таблица — <table>, <tr>, <td>

<table border="1">
    <tr>
        <td>Имя</td>
        <td>Возраст</td>
    </tr>
    <tr>
        <td>Анна</td>
        <td>25</td>
    </tr>
    <tr>
        <td>Иван</td>
        <td>30</td>
    </tr>
</table>

Как это выглядит в браузере:

Имя Возраст
Анна 25
Иван 30
📌 Атрибут border="1" добавлен только для наглядности, чтобы увидеть границы ячеек. В реальных проектах границы задают через CSS.

2. Заголовки ячеек — <th>

Тег <th> (table header) делает текст жирным и центрирует по умолчанию. Используется для заголовков строк или столбцов.

<table border="1">
    <tr>
        <th>Имя</th>
        <th>Возраст</th>
        <th>Город</th>
    </tr>
    <tr>
        <td>Анна</td>
        <td>25</td>
        <td>Москва</td>
    </tr>
    <tr>
        <td>Иван</td>
        <td>30</td>
        <td>СПб</td>
    </tr>
</table>

Как это выглядит в браузере:

Имя Возраст Город
Анна 25 Москва
Иван 30 СПб

3. Объединение ячеек — colspan и rowspan

Атрибут colspan объединяет ячейки по горизонтали (несколько столбцов).
Атрибут rowspan объединяет ячейки по вертикали (несколько строк).

<table border="1">
    <tr>
        <th>Имя</th>
        <th colspan="2">Контакты</th>
    </tr>
    <tr>
        <td>Анна</td>
        <td>email@mail.ru</td>
        <td>+7 123 456</td>
    </tr>
    <tr>
        <td rowspan="2">Иван</td>
        <td>ivan@mail.ru</td>
        <td>+7 987 654</td>
    </tr>
    <tr>
        <td>>i.ivanov@work.ru</td>
        <td>+7 555 555</td>
    </tr>
</table>

Как это выглядит в браузере:

Имя Контакты
Анна email@mail.ru +7 123 456
Иван ivan@mail.ru +7 987 654
i.ivanov@work.ru +7 555 555
📌 В примере выше у Ивана две строки: в первой строке телефон и почта, во второй — дополнительная почта и телефон. Ячейка с именем объединена по вертикали (rowspan="2").

4. Группировка строк — <thead>, <tbody>, <tfoot>

Для больших таблиц можно разделить строки на группы: заголовок (<thead>), тело (<tbody>), подвал (<tfoot>). Это помогает при стилизации и работе со скриптами.

<table border="1">
    <thead>
        <tr>
            <th>Товар</th>
            <th>Цена</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Ноутбук</td>
            <td>50000</td>
        </tr>
        <tr>
            <td>Мышь</td>
            <td>1000</td>
        </tr>
    </tbody>
    <tfoot>
        <tr>
            <td>Итого</td>
            <td>51000</td>
        </tr>
    </tfoot>
</table>

Как это выглядит в браузере:

Товар Цена
Ноутбук 50000
Мышь 1000
Итого 51000

5. Что нельзя делать с таблицами

📓 Из тетради: «Таблицы хороши для цифр и сравнений. Для раскладки страницы используйте CSS — флексы и сетки. Не повторяйте ошибок 90-х».