На этом уроке Вы научитесь создавать HTML таблицы и оформлять их с помощью CSS классов платформы Twitter Bootstrap 3.
На веб-страницах таблицы используются для того, чтобы представить Ваши данные в виде двухмерной структуры, состоящей из строк, столбцов и ячеек.
Создание таблицы осуществляется посредством тегов языка HTML. После создания таблицы веб-разработчик переходит к её оформлению с помощью написания правил CSS. Данный процесс можно значительно упростить, используя большое количество готовых CSS классов платформы Twitter Bootstrap 3. Процесс оформления таблицы с помощью Twitter Bootstrap осуществляется путём добавления к таблице или к её различным частям (строке, ячейке) соответствующих классов. Задавая те или иные классы, Вы тем самым задаёте то или иное оформление таблицы.
Создание таблицы в HTML начинается с элемента table
(<table>
...</table>
), внутри которого помещают шапку (<thead>
...</thead>
) и основное содержимое (<tbody>
...</tbody>
). Далее в элемент thead
и tbody
помещают строки (<tr>
...</tr>
). После этого в элементе tr
(<tr>
...</tr>
) создают ячейки с помощью элементов td
(<td>
...</td>
) и th
(<th>
...</th>
), внутрь которых помещают содержимое, которое должно выводиться в этой ячейке. Элемент th
(<th>
...</th>
) обычно используют в шапке, т.к. он придаёт жирное начертание тексту и выравнивает его по центру.
Для объединения ячеек по вертикали и горизонтали предназначены следующие атрибуты:
rowspan="N"
- объединяет N
ячеек по вертикали;colspan="N"
- объединяет N
ячеек по горизонтали.Применять данные атрибуты можно для элементов td
и th
.
Например:
<table> <thead> <tr> <th>Заголовок 1</th> <th>Заголовок 2</th> <th>Заголовок 3</th> </tr> </thead> <tbody> <tr> <td rowspan="3">Содержимое ячейки</td> <td colspan="2">Содержимое ячейки</td> </tr> <tr> <td>Содержимое ячейки</td> <td>Содержимое ячейки</td> </tr> <tr> <td>Содержимое ячейки</td> <td rowspan="2">Содержимое ячейки</td> </tr> <tr> <td colspan="2">Содержимое ячейки</td> </tr> </tbody> </table>
Для указанания названия таблицы используется элемент caption
(<caption>
...</caption>
), который размещается внутри элемента table
сразу же после его открывающего тега.
<table> <caption> Название таблицы </caption> ... </table>
Базовое оформление таблиц
Для придания таблицы базового оформления необходимо добавить класс .table
к элементу table
:
<table class="table"> ... </table>
Например:
<table class="table"> <thead> <tr> <th>№ п/п</th> <th>Имя</th> <th>Фамилия</th> <th>E-mail</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>Иван</td> <td>Чмель</td> <td>ivan@mail.ru</td> </tr> <tr> <td>2</td> <td>Петр</td> <td>Щербаков</td> <td>petr@mail.ru</td> </tr> <tr> <td>3</td> <td>Юрий</td> <td>Голов</td> <td>yuri@mail.ru</td> </tr> </tbody> </table>
Для выделения нечётных строк основной части таблицы (<tbody>
...</tbody>
) с помощью тёмного фона добавьте дополнительно класс .table-striped
к классу .table
.
<table class="table table-striped"> ... </table>
:nth-child
, который не поддерживается в браузере Internet Explorer 8.Например:
<table class="table table-striped"> <thead> <tr> <th>№ п/п</th> <th>Имя</th> <th>Фамилия</th> <th>E-mail</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>Иван</td> <td>Чмель</td> <td>ivan@mail.ru</td> </tr> <tr> <td>2</td> <td>Петр</td> <td>Щербаков</td> <td>petr@mail.ru</td> </tr> <tr> <td>3</td> <td>Юрий</td> <td>Голов</td> <td>yuri@mail.ru</td> </tr> </tbody> </table>
Также вы можете добавлять границы для всех ячеек таблицы, просто добавив дополнительный класс Bootstrap .table-bordered к базовому классу .table.
<table class="table table-bordered"> <thead> <tr> <th>№ п/п</th> <th>Имя</th> <th>Фамилия</th> <th>E-mail</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>Иван</td> <td>Чмель</td> <td>ivan@mail.ru</td> </tr> <tr> <td>2</td> <td>Петр</td> <td>Щербаков</td> <td>petr@mail.ru</td> </tr> <tr> <td>3</td> <td>Юрий</td> <td>Голов</td> <td>yuri@mail.ru</td> </tr> </tbody> </table>
Выше приведенный пример будет выглядеть примерно так:
№ п/п | Имя | Фамилия | |
---|---|---|---|
1 | Иван | Чмель | ivan@mail.ru |
2 | Петр | Щербаков | petr@mail.ru |
3 | Юрий | Голов | yuri@mail.ru |
Что бы включить подсвечивание строк таблицы, Вам необходимо добавить класс .table-hover к базовому классу .table элемента <table>.
<table class="table table-hover"> <thead> <tr> <th>№ п/п</th> <th>Имя</th> <th>Фамилия</th> <th>E-mail</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>Иван</td> <td>Чмель</td> <td>ivan@mail.ru</td> </tr> <tr> <td>2</td> <td>Петр</td> <td>Щербаков</td> <td>petr@mail.ru</td> </tr> <tr> <td>3</td> <td>Юрий</td> <td>Голов</td> <td>yuri@mail.ru</td> </tr> </tbody> </table>
Выше приведенный пример будет выглядеть примерно так:
№ п/п | Имя | Фамилия | |
---|---|---|---|
1 | Иван | Чмель | ivan@mail.ru |
2 | Петр | Щербаков | petr@mail.ru |
3 | Юрий | Голов | yuri@mail.ru |
Вы можете также сделать свои таблицы более компактными посредством добавления дополнительного класса .table-condensed к базовому классу .table. Класс .table-condensed делает таблицу компактной за счет уменьшения отступов в ячейках наполовину.
<table class="table table-condensed"> <thead> <tr> <th>№ п/п</th> <th>Имя</th> <th>Фамилия</th> <th>E-mail</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>Иван</td> <td>Чмель</td> <td>ivan@mail.ru</td> </tr> <tr> <td>2</td> <td>Петр</td> <td>Щербаков</td> <td>petr@mail.ru</td> </tr> <tr> <td>3</td> <td>Юрий</td> <td>Голов</td> <td>yuri@mail.ru</td> </tr> </tbody> </table>
Выше приведенный пример будет выглядеть примерно так:
№ п/п | Имя | Фамилия | |
---|---|---|---|
1 | Иван | Чмель | ivan@mail.ru |
2 | Петр | Щербаков | petr@mail.ru |
3 | Юрий | Голов | yuri@mail.ru |
Существуют вспомогательные классы, которые позволяют выделить строку или отдельные ячейки различным цветом посредством окраски их фона.
<table class="table"> <thead> <tr> <th>№ чека</th> <th>Способ платежа</th> <th>Дата платежа</th> <th>Сумма</th> </tr> </thead> <tbody> <tr class="active"> <td>2803</td> <td>Наличные</td> <td>04.08.2014</td> <td>2005.00</td> </tr> <tr class="success"> <td>2804</td> <td>Карта VISA</td> <td>04.08.2014</td> <td>1270.00</td> </tr> <tr class="info"> <td>2805</td> <td>Наличные</td> <td>05.08.2014</td> <td>1356.50</td> </tr> <tr class="warning"> <td>2806</td> <td>Наличные</td> <td>05.08.2014</td> <td>5200.05</td> </tr> <tr class="danger"> <td>2807</td> <td>Карта VISA</td> <td>06.08.2014</td> <td>315.70</td> </tr> </tbody> </table>
Выше приведенный пример будет выглядеть примерно так:
№ чека | Способ платежа | Дата платежа | Сумма |
---|---|---|---|
2803 | Наличные | 04.08.2014 | 2005.00 |
2804 | Карта VISA | 04.08.2014 | 1270.00 |
2805 | Наличные | 05.08.2014 | 1356.50 |
2806 | Наличные | 05.08.2014 | 5200.05 |
2807 | Карта VISA | 06.08.2014 | 315.70 |
С помощью Twitter Bootstrap 3 Вы можете также создавать адаптивные таблицы, которые можно просматривать на маленьких устройствах (ширина экрана, у которых меньше 768px) с помощью полосы прокрутки. При просмотре адаптивных таблиц на других устройствах, имеющих экран шириной, больше чем 768px полоса прокрутки будет отсутствовать.
<div class="table-responsive"> <table class="table table-bordered"> <thead> <tr> <th>№ п/п</th> <th>Имя</th> <th>Фамилия</th> <th>E-mail</th> <th>Увлечения</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>Иван</td> <td>Чмель</td> <td>ivan@mail.ru</td> <td>Плавание, бодибилдинг, боевые искусства</td> </tr> <tr> <td>2</td> <td>Петр</td> <td>Щербаков</td> <td>petr@mail.ru</td> <td>Европейские танцы, Стрип-денс, Ролики</td> </tr> <tr> <td>3</td> <td>Юрий</td> <td>Голов</td> <td>yuri@mail.ru</td> <td>Горный велосипед, скейтборд, катание на квадрацикле</td> </tr> </tbody> </table> </div>
Выше приведенный пример будет выглядеть примерно так:
№ п/п | Имя | Фамилия | Увлечения | |
---|---|---|---|---|
1 | Иван | Чмель | ivan@mail.ru | Плавание, бодибилдинг, боевые искусства |
2 | Петр | Щербаков | petr@mail.ru | Европейские танцы, Стрип-денс, Ролики |
3 | Юрий | Голов | yuri@mail.ru | Горный велосипед, скейтборд, катание на квадрацикле |
В следующей таблице перечислены поддерживаемые табличные элементы HTML и их назначение.
Тег | Описание |
---|---|
<table> | Контейнер для элементов, определяющих содержимое таблицы |
<caption> | Заголовок таблицы |
<thead> | Контейнер для элементов, формирующих «шапку» таблицы |
<tbody> | Контейнер для элементов, формирующих основную часть таблицы |
<tr> | Контейнер для ячеек, являющихся элементами одной строки |
<th> | Специальная табличная ячейка для заголовков столбцов |
<td> | Табличная ячейка, предназначенная для размещения основных табличных данных |