Раздел: Сайтостроение / HTML /

Объединение ячеек в таблицах HTML: Полное руководство для чайников

План заработка в Интернете План заработка в Интернете

Как правильно выбрать партнерские программы, чтобы гарантированно зарабатывать? Что необходимо сделать вначале, чтобы ваш заработок был стабильным и предсказуемым? Возможно ли стартовать вообще без денег и каких-либо вложений в рекламу? Этот план поможет вам сделать первые шаги к заработку, даст ответы на важные вопросы и убережет от ошибок в начале пути. Подробнее...

Таблицы в HTML — это отличный способ структурировать данные. Но просто набор строк и столбцов выглядит скучно и не всегда удобно. Иногда нужно, чтобы заголовок растягивался на несколько колонок, а одна ячейка занимала две строки.

Именно для этого существуют атрибуты colspan (объединение столбцов) и rowspan (объединение строк).

В этой статье на простых примерах мы разберемся, как правильно объединять ячейки, чтобы ваши таблицы были красивыми и понятными.

Что такое объединение ячеек?

Представьте обычную таблицу в Excel. Выделяете несколько ячеек, нажимаете "Объединить" — и получается одна большая ячейка. В HTML происходит то же самое, только команды отдаются с помощью специальных атрибутов.

Основные правила

  1. Объединение работает только с соседними ячейками.
  2. Когда вы объединяете ячейки, некоторые теги <td> или <th> нужно убрать из кода, потому что их место заняла "большая" ячейка.
  3. Атрибуты прописываются внутри открывающего тега ячейки.

Как объединить столбцы (атрибут colspan)

Атрибут colspan (от англ. column span — охват колонок) нужен, чтобы ячейка растянулась на несколько колонок по горизонтали.

Задача: Сделать шапку для расписания, где общий заголовок "Расписание уроков" занимает сразу три колонки: Время, Предмет, Кабинет.

Код:
<table border="1" cellpadding="5">
  <tr>
    <!-- Эта ячейка растянется на 3 колонки -->
    <th colspan="3">Расписание уроков</th>
  </tr>
  <tr>
    <th>Время</th>
    <th>Предмет</th>
    <th>Кабинет</th>
  </tr>
  <tr>
    <td>8:30</td>
    <td>Математика</td>
    <td>101</td>
  </tr>
</table>

Как это выглядит:

Расписание уроков
Время Предмет Кабинет
8:30 Математика 101

Как это работает:

Мы сказали первой ячейке colspan="3". Это значит, что она занимает место трех обычных ячеек. Поэтому в следующей строке мы смело пишем три ячейки (<th>Время</th>, <th>Предмет</th>, <th>Кабинет</th>), и таблица не ломается.

Как объединить строки (атрибут rowspan)

Атрибут rowspan (от англ. row span — охват строк) нужен для объединения ячеек по вертикали.

Задача: Сделать список сотрудников. У одного человека (Иванова) есть два номера телефона, и фамилия не должна дублироваться.

Код:
<table border="1" cellpadding="5">
  <tr>
    <th>Сотрудник</th>
    <th>Телефон</th>
  </tr>
  <tr>
    <!-- Ячейка с фамилией Иванов будет занимать 2 строки -->
    <td rowspan="2">Иванов И.И.</td>
    <td>+7-901-111-1111</td>
  </tr>
  <tr>
    <!-- Здесь ячейка <td> для фамилии уже НЕ НУЖНА! Она занята сверху -->
    <td>+7-902-222-2222</td>
  </tr>
  <tr>
    <td>Петров П.П.</td>
    <td>+7-903-333-3333</td>
  </tr>
</table>

Как это выглядит:

Сотрудник Телефон
Иванов И.И. +7-901-111-1111
+7-902-222-2222
Петров П.П. +7-903-333-3333

Важный момент:

Обратите внимание: во второй строке (<tr>) у нас только один тег <td> для телефона. Мы не пишем вторую ячейку для фамилии, потому что её место уже занято ячейкой из первой строки, у которой стоит rowspan="2".

Сложный пример: объединяем и строки, и столбцы

Чаще всего на практике встречаются комбинированные варианты. Главное правило здесь — не запутаться в подсчете ячеек.

Задача: Сделать прайс-лист на услуги.

Код:
<table border="1" cellpadding="8">
  <tr>
    <th colspan="2">Услуга</th>
    <th>Цена</th>
  </tr>
  <tr>
    <td rowspan="2">Ремонт</td>
    <td>Мелкий</td>
    <td>1000 руб.</td>
  </tr>
  <tr>
    <td>Капитальный</td>
    <td>5000 руб.</td>
  </tr>
  <tr>
    <td colspan="2">Консультация</td>
    <td>Бесплатно</td>
  </tr>
</table>

Как это выглядит:

Услуга Цена
Ремонт Мелкий 1000 руб.
Капитальный 5000 руб.
Консультация Бесплатно

Разбор полетов:

  • Строка 1: У нас есть colspan="2", значит в этой строке по факту две ячейки (первая "Услуга", и вторая — "Цена").
  • Строка 2: Обычная строка. Но у первой ячейки стоит rowspan="2" (будет занимать еще и третью строку). Значит, в этой строке мы пишем две ячейки: "Ремонт" (ушла вниз) и рядом "Мелкий".
  • Строка 3: Это самая сложная для понимания новичков. Так как ячейка "Ремонт" из второй строки все еще действует (у нее rowspan="2"), в третьей строке мы НЕ пишем первую ячейку. Мы сразу начинаем со второй ячейки — "Капитальный", и затем пишем третью — "5000 руб.".
  • Строка 4: Здесь все просто. colspan="2" объединяет первые две колонки в одну.

Частые ошибки (чего делать не стоит)

  • Разное количество ячеек. Самая популярная ошибка. Если вы объединили ячейки, пересчитайте, сколько тегов <td> или <th> должно быть в каждой строке. Сумма colspan в строке должна быть одинаковой для всех строк таблицы.
  • Забыли удалить ячейку. Если вы поставили rowspan="2" в первой строке, не забудьте убрать одну ячейку во второй строке.
  • Путаница с th и td. Атрибуты colspan и rowspan работают и с заголовками <th>, и с обычными ячейками <td>.

Заключение

Объединение ячеек (colspan и rowspan) — это базовый навык верстальщика. Поначалу может быть непривычно считать ячейки, но с практикой это становится просто.

Главный совет: всегда рисуйте структуру таблицы на бумажке или в уме, прежде чем писать код. Отмечайте, какие ячейки сколько места занимают, и тогда количество тегов в строках никогда не собьется.

На этом всё. Подписывайтесь на новости, чтобы ничего не пропустить (красная кнопка вверху слева или ссылки ниже).


Как создать свой сайт Как создать свой сайт

Очень небольшая книга, которую можно прочитать буквально за 15 минут. Но эти 15 минут дадут вам представление о том, как создаются современные сайты... Подробнее...
Помощь в технических вопросах Помощь в технических вопросах

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python; C# и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика