Шпаргалка по работе с таблицами

1. Как задать таблице класс или идентификатор

Если на одной странице или на сайте присутствует несколько таблиц и для них требуется установить разное стилевое оформление, то для таких таблиц добавляется атрибут class или id с соответствующим значением, например:

<table class="list">
<tr>
  <th>Comedy</th>
  <th>Adventure</th>
  <th>Action</th>
</tr>
<tr>
  <td>Scary Movie</td>
  <td>Indiana Jones</td>
  <td>The Punisher</td>
</tr>
<tr>
  <td>Epic Movie</td>
  <td>Star Wars</td>
  <td>Bad Boys</td>
</tr>
</table>

<table id="company">
<tr>
  <th>Company</th>
  <th>Q1</th>
  <th>Q2</th>
  <th>Q3</th>
</tr>
<tr>
  <td>Microsoft</td>
  <td>20.3</td>
  <td>30.5</td>
  <td>23.5</td>
</tr>
<tr>
  <td>Google</td>
  <td>50.2</td>
  <td>40.63</td>
  <td>45.23</td>
</tr>
</table>

При этом class="list" можно будет использовать для оформления других таблиц (элементов), а id="company" — только для одной таблицы.

2. Как добавить ссылки в таблицу

Ячейки таблицы могут содержать практически любые элементы. Чтобы вставить ссылку в ячейку, нужно добавить в нее элемент <a> с текстом ссылки, например:

<table>
<tr>
  <th>Comedy</th>
  <th>Adventure</th>
  <th>Action</th>
</tr>
<tr>
  <td><a href="https://ru.wikipedia.org/wiki/Очень_страшное_кино">Scary Movie</a></td>
  <td>Indiana Jones</td>
  <td>The Punisher</td>
</tr>
<tr>
  <td>Epic Movie</td>
  <td>Star Wars</td>
  <td>Bad Boys</td>
</tr>
</table>

Стилизовать такие ссылки можно при помощи определения table a {}, или же задав класс непосредственно для ссылки.

3. Как создать ссылки на ячейки таблицы

Ссылка на ячейку таблицы создается при помощи якоря. Для этого нужной ячейке добавляется атрибут id со значением, например:

<td id="значение_идентификатора_ячейки">содержимое ячейки</td>.

Чтобы обеспечить переход со ссылки на эту ячейку, задаём ей соответствующее значение пути

<a href="#значение_идентификатора_ячейки">текст ссылки</a>.

Если переход осуществляется с одной страницы сайта на другую, якорь добавляется после адреса страницы, например:

<a href="https://html5book.ru/css-shrifty/#color">текст ссылки</a>.

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

td:target {background: salmon;}
td:target {color: salmon;}
td:target {text-decoration: underline;}

Пример

Таблица составлена на основе рейтинга зрителей. Перейдя по этой ссылке, вы узнаете какой фильм мой самый любимый.

Лучшие фильмы 2015 года
Фантастика Комедия Приключения
Марсианин Самый лучший день Миссия невыполнима: Племя изгоев
Мстители: Эра Альтрона Пиксели Агенты А.Н.К.Л.
Голодные игры: Сойка-пересмешница Барашек Шон Последние рыцари

4. Одинаковая ширина колонок таблицы

По умолчанию ширина таблицы определяется содержимым ее ячеек. Управлять шириной столбцов (ячеек) можно следующими способами:

  • Если для таблицы задана ширина, то table {table-layout: fixed;} сделает все ячейки одинаковой ширины, исходя из ширины самой длинной ячейки.
  • Если для таблицы задана ширина table {width: 100%;}, и ширина ячеек вычисляется в %, например, td {width: 25%;}, то ширина всех ячеек будет равной.
  • Задав фиксированную ширину с помощью единиц длины, например, th {width: 200px}.

При этом не забывайте, что к ширине таблицы будет добавлена ширина границы ячеек и таблицы и внутренние отступы ячеек padding (если не установлено свойство {box-sizing:border-box}).

5. Оформление заголовка таблицы

Заголовок таблицы добавляется с помощью элемента <caption>Заголовок_таблицы</caption>, который вставляется сразу после открывающего тега <table>. По умолчанию сам заголовок расположен перед таблицей, а текст заголовка выравнен по центру.

Управлять положением заголовка можно свойством caption-side, например, caption {caption-side: bottom} поместит заголовок после таблицы.

По сути заголовок является ячейкой таблицы, поэтому для него можно задавать те же свойства, что и для ячеек таблицы, т.е.

caption {
  padding: 7px;
  background: silver;
  font-style: italic;
  text-align: right;
}

6. Создание вложенных таблиц

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

<table class="nesting">
  <tr>
    <th>ячейка заголовка таблицы</th>
    <th>ячейка заголовка таблицы</th>
  </tr>
  <tr>
    <td>ячейка таблицы</td>
    <td>
      <table>
        <tr>
          <th>ячейка заголовка вложенной таблицы</th>
        </tr>
        <tr>
          <td>ячейка вложенной таблицы</td>
        </tr>
      </table>
    </td>
  </tr>
</table>
ячейка заголовка таблицы ячейка заголовка таблицы
ячейка таблицы
ячейка заголовка вложенной таблицы
ячейка вложенной таблицы

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

Поделиться: