ЛЕКЦИЯ
Тема: «Создание таблиц в HTML»
План лекции
5.
Теги thead,
tbody и tfoot. Разделение
таблицы
6.
Табличная верстка html-страниц
В html таблицы были придуманы для
того, чтобы выравнивать элементы страницы более точно, чем просто по краям
браузера. Таблицы с невидимой границей используются для верстки веб-страниц,
позволяя разделять документ на модульные блоки.
Принцип
создания таблиц в html таков: создаётся таблица, потом создаётся
строка, потом все столбцы данной строки, потом очередная строка, снова все
очередные столбцы данной строки и так далее.
Таблица создаётся
с помощью тега <table>, а заканчивается тегом </table>. У таблицы есть строки и столбцы, поэтому их
необходимо создать. Теперь согласно принципу создания таблиц, необходимо
создать строку. Строка создаётся с помощью тега <tr> … </tr>.
Внутри тега <tr> необходимо создавать столбцы, которые
создаются с помощью тега <td> … </td>. И уже внутри этого тега находятся тот текст,
который должен быть расположен внутри данной ячейки. Дальше открывается новый
тег <td>. В него снова помещается
текст, после этого закрывается </td>. Это сигнал к концу второго
столбца. И так далее, столько столбцов, сколько Вам нужно. В конце закрывается
строка тегом </tr>. Затем следующая строка и
так далее. А заканчивается всё закрывающим тегом </table>.
Пример:
<table border="1">
<tr>
<td>11</td>
<td>12</td>
<td>13</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
<td>23</td>
</tr>
<tr>
<td>31</td>
<td>32</td>
<td>33</td>
</tr>
</table>
В браузере отобразится таблица:

Для построения
таблиц, кроме тегов <table>…</table>, <tr> … </tr>, <td>
… </td> используются
такие теги:
<Caption> … </Caption>
- заголовок
таблицы. Поддерживает атрибут ALIGN.
<tH> … </tH> - отображение заголовка строки или столбца
более жирным шрифтом. Данный элемент
поддеpживает атpибуты: ALIGN, COLSPAN,
HEIGHT, VALIGN, WIDTH.
Пример:
<table
border="1">
<caption>Название таблицы</caption>
<tr>
<th>1</th>
<th>2</th>
<th>3</th>
</tr>
<tr>
<td>11</td>
<td>12</td>
<td>13</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
<td>23</td>
</tr>
<tr>
<td>31</td>
<td>32</td>
<td>33</td>
</tr>
</table>
В браузере отобразится
таблица:

1) Атрибут "border", значение которого
задаёт толщину рамки таблицы в пикселях. По умолчанию, рамки нет.
2) Атрибут "width" задает ширину таблицы.
Размер может быть указан, как в абсолютных единицах (пиксели, px), так и в относительных
(проценты, %). Относительный
размер хорош тем, что всегда подстроится под любое разрешение монитора
пользователя и любой браузер. А абсолютный - тем хорош, что при любых браузерах
и любых разрешениях монитора не будет сюрпризов с дизайном, связанных,
например, с растягиванием элементов (если монитор широкоэкранный).
Пример:
<table border = "2" width = "30%">
Пример:
<table align="left | center | right">...</table>
4) background - Определяет изображение, которое будет использоваться в качестве фонового рисунка таблицы. При выборе фонового рисунка убедитесь, что обеспечен достаточный контраст между ним и содержимым таблицы. В качестве фона допускается использовать анимированные изображения в формате GIF, но они отвлекают внимание читателей.
Пример:
<table background="путь к картинке">...</table>
5) bgcolor – цвет фона таблицы
Пример:
<table bgcolor="цвет">...</table>
Пример:
Нашей предыдущей таблице зададим выравнивание по центру, ширину таблицы относительно окна браузера и цвет фона таблицы. <table border="1" align="center" width="40%" bgcolor="plum">
<caption>Название таблицы</caption>
<tr> <th>1</th> <th>2</th> <th>3</th> </tr> <tr> <td>11</td> <td>12</td> <td>13</td> </tr> <tr> <td>21</td> <td>22</td> <td>23</td> </tr> <tr> <td>31</td> <td>32</td><td>33</td>
</tr> </table> В браузере: 6) Атрибут cols - задает количество столбцов в таблице, помогая браузеру в подготовке к ее отображению. Без этого атрибута таблица будет показана только после того, как все содержимое таблицы будет загружено в браузер и проанализировано. Использование атрибута cols позволяет несколько ускорить отображение содержимого таблицы.
Пример:
<table cols="число">...</table>
7) CELLPADDING – расстояние между текстом ячейки и внутренней границей ячейки таблицы в пикселях.
Пример:
Для предыдущей таблицы указано значение: <table border=1 cellpadding=15> 8) CELLSPACING – расстояние между ячейками таблицы в пикселях.
Пример:
В примере указано значение:<table border=1 cellspacing=10> Обратите внимание, границы у таблицы двойные. Если указать cellspacing="0", то границы примут привычный вид: 9) FRAME - задает вид рамки вокруг таблицы и может принимать следующие значения:
void - рамки нет, above - только верхняя рамка, below - только нижняя рамка, hsides - только верхняя и нижняя рамки, vsides - только левая и правая рамки, lhs - только левая рамка, rhs - только правая рамка, box - все четыре части рамки. 10) RULES - задает вид внутренних границ таблицы и может принимать следующие значения:
none - между ячейками нет границ, rows - границы только между строками, cols - границы только между столбцами, all - отображать все границы. 11) BORDERCOLOR - задает цвет рамки вокруг таблицы
Пример:
<table border="1" bordercolor="red">
3. Атрибуты
тега <tr> (строка)
Таблицы формируются
построчно. Поэтому, заданные в строке (tr) параметры распространяют свое
действие на все ячейки (td) строки. У строк можно использовать такие параметры:
1)
Атрибут
height – высота строки.
У тега <tr> нет атрибута "width".
А за ширину отвечают столбцы.
2)
align - выравнивает текст в ячейках по горизонтали, может принимать
значения: слева (right), справа (left), по центру (center).
3)
valign
- выравнивает текст в ячейках по вертикали, может принимать значения: вверх (top), вниз (bottom), по центру (middle).
4)
bgcolor
- задает цвет строки.
Пример:
Изменим предыдущую
таблицу:
Зададим красный
цвет границы таблицы и толщину в 3 пикселя: <table border="3"
bordercolor="red">
Сделаем заливку
строки заголовка столбцов таблицы красным цветом.
Установим высоту
каждой строки 40 пикселей: <tr
height="40">
Для каждой строки
установим различное выравнивание по горизонтали и вертикали.

Получим в браузере:

4. Атрибуты
тега <td> (ячейка)
Все
параметры, доступные для строк, можно применять и к отдельным ячейкам, т.е. к
любому тегу <td>, действие будет распространяться только на саму ячейку.
1)
Атрибут "width"
– ширина ячейки.
2)
Атрибут "colspan".
Значение этого атрибута означает количество столбцов, которое занимает данная
ячейка.
3)
Атрибут "rowspan".
Значение этого атрибута означает количество строк, которое занимает данная
ячейка.
Пример:
<table border=1
width=100%>
<tr>
<td colspan=2 align=center>Две ячейки объединены
по горизонтали</td>
</tr>
<tr>
<td rowspan=2>Две ячейки объединены по
вертикали</td>
<td align=left>выравнивание по левому
краю</td>
</tr>
<tr>
<td align=right>выравнивание по правому
краю</td>
</tr>
</table>

5. Теги thead,
tbody и tfoot. Разделение
таблицы
Теги thead, tbody и
tfoot предназначены для разделения таблицы на части. То есть с их помощью мы
сможем определить верхнюю часть таблицы, основную часть и нижнюю часть таблицы.
HTML-тег <thead> предназначен для определения верхней
(заголовочной) части таблицы.
Данный тег необходимо
прописывать сразу после открывающего тега <table>, если нет заголовка
указанного с помощью тега <caption>. Если же заголовок присутствует, то
тег необходимо добавлять после него. Кроме того, при использовании данного
элемента в коде обязательно должен присутствовать HTML-тег <tbody>.
HTML-тег <tbody>. Если решили использовать в таблице тег
<thead>, значит, обязательно должны использовать и тег <tbody>,
который предназначен для выделения основной части таблицы. Можно его даже
назвать аналогом тега <body> для HTML-документа в целом. Только тег
<tbody> относится только к таблице, а не к целому документу.
HTML-тег <tfoot>. У этого HTML-тега есть одна особенность.
Если смотреть на его предназначение и предназначение других тегов, которые
делят таблицу на части, то можно сделать вывод, что раз он отвечает за нижнюю
часть, то и прописать его мы должны после тега <tbody>. Однако это не
так. На самом деле HTML-тег <tfoot> должен быть указан до <tbody>.
Но информацию внутри этого тега необходимо указать ту, которая будет снизу, так
как веб-браузер выведет ее под основной информацией.
Пример.

Отображается в
браузере:

Вывод:
THEAD - заголовок таблицы
TFOOT - нижняя часть таблицы
TBODY - тело таблицы
Данные теги структурируют таблицу с целью единообразия
оформления. Теги должны располагаться именно в таком порядке.
6. Табличная
верстка html-страниц
Самым распространенным применением
таблиц сложных структур является разметка web-страницы. Посмотрите на рисунок:

Если наложить на этот рисунок таблицу,
то увидим, что она состоит из трех строк и двух столбцов фиксированной ширины.

Получается, что нужно, чтобы в первой и
третьей строках было по одному столбцу. Это достигается при помощи параметра colspan тега <td>. Этот параметр указывает браузеру объединить несколько
столбцов в один. Значением этого параметра является число, указывающее, сколько
столбцов будет объединено.
Пример,
<td colspan="2">
Этот столбец включает в себя два
столбца.
Для нашего примера:
<table width="715" border="1" align="center"
cellspacing="0" cellpadding="10">
<tr bgcolor="darkred"
height="100">
<td colspan="2">шапка сайта</td>
</tr>
<tr bgcolor="oldlace"
height="300">
<td width="190">меню</td>
<td>контент</td>
</tr>
<tr bgcolor="darkred"
height="30">
<td colspan="2">низ сайта</td>
</tr>
</table>
Обратите внимание, что первая и третья
строки теперь содержат по одному столбцу.
Рассмотрим
другой пример разметки web-страницы:

Посчитайте - сколько строк и столбцов в
этой таблице? Для этого наложите мысленно сетку на рисунок. Получится три строки
и шесть столбцов.
Первая строка состоит из одного столбца,
включающего в себя шесть столбцов. Запишем это:
<tr bgcolor="darkred" height="60">
<td colspan="6">шапка сайта</td>
</tr>
Вторая строка состоит из шести столбцов:
<tr bgcolor="oldlace"
height="30">
<td>меню</td>
<td>меню</td>
<td>меню</td>
<td>меню</td>
<td>меню</td>
<td>меню</td>
</tr>
Третья строка состоит из двух столбцов, причем,
первый включает в себя два столбца, а второй - четыре:
<tr
height="190">
<td colspan="2"
bgcolor="darkred">новости</td>
<td colspan="4" bgcolor="#FFFFFF">контент</td>
</tr>
Не так и сложно. Накладываем зрительно
сетку на рисунок и прописываем строки по очереди сверху вниз, описывая в каждой
нужное количество столбцов.
Рассмотрим
еще пример разметки web-страницы:

Итак, в первой строке у нас два столбца,
причем второй столбец объединяет две строки. Запишем это:
<tr bgcolor="darkred"
height="60">
<td width="70%">шапка</td>
<td rowspan="2">меню</td>
</tr>
Вторая строка - это один столбец (просто его часть скрыта вторым
столбцом первой строки):
<tr bgcolor="oldlace"
height="200">
<td>контент</td>
</tr>
Наконец, третья строка - это один
столбец, включающий в себя три столбца:
<tr bgcolor="darkred"
height="30">
<td colspan="2">низ сайта</td>
</tr>
Как следует из названия одну таблицу
можно поместить внутрь другой, а имеено внутрь любого столбца. Сделаем это на
примере нашей последней разметки.
Итак, у нас есть вот такой код:
<html>
<head>
<title>Заголовок документа</title>
</head>
<body>
<table
border="1" cellspacing="0" cellpadding="10"
align="center" width="715">
<tr
height="60">
<td
bgcolor="darkred">шапка</td>
<td bgcolor="darkred"
rowspan="2">меню</td>
</tr>
<tr
height="300">
<td
width="70%">контент</td>
</tr>
<tr
height="30">
<td colspan="2" bgcolor="darkred">низ
сайта</td>
</tr>
</table>
</body>
</html>
Внутрь нашего контента поместим вот
такую таблицу:

Код этой таблицы простой - три строки и
два столбца:
<table width="470" border="1"
align="center"
cellspacing="0" cellpadding="10">
<tr>
<td
width="100"><img src="f1.jpg" width="100"
height="70"></td>
<td>Здесь текст о ромашках</td>
</tr>
<tr>
<td width="100"><img
src="f2.jpg" width="100"
height="70"></td>
<td>Здесь текст о тюльпанах</td>
</tr>
<tr>
<td
width="100"><img src="f3.jpg" width="100"
height="70"></td>
<td>Здесь текст о герберах</td>
</tr>
</table>
Теперь возьмем код этой таблицы и поместим его
вместо слова "контент" в код нашей разметки:
<html>
<head>
<title>Заголовок документа</title>
</head>
<body>
<table
border="1" cellspacing="0" cellpadding="10"
align="center" width="715">
<tr
height="60">
<td
bgcolor="darkred">шапка</td>
<td
bgcolor="darkred" rowspan="2">меню</td>
</tr>
<tr
height="300">
<td width="70%">
<table
width="470"
border="1" align="center" cellspacing="0"
cellpadding="10">
<tr>
<td
width="100"><img src="f1.jpg" width="100"
height="70"></td>
<td>Здесь текст о ромашках</td>
</tr>
<tr>
<td width="100"><img
src="f2.jpg" width="100"
height="70"></td>
<td>Здесь текст о тюльпанах</td>
</tr>
<tr>
<td
width="100"><img src="f3.jpg" width="100"
height="70"></td>
<td>Здесь текст о герберах</td>
</tr>
</table>
</td>
</tr>
<tr
height="30">
<td colspan="2" bgcolor="darkred">низ
сайта</td>
</tr>
</table>
</body>
</html>
Результат:

Теперь уберем все границы у вложенной
таблицы. Для этого в теге <table> этой таблицы зададим параметр
<border="0">
<table
width="470"
border="0" align="center" cellspacing="0"
cellpadding="10" >
Результат:

КОНТРОЛЬНЫЕ ВОПРОСЫ
1.
С помощью какого тега создаются таблицы в
html-документе?
2.
Какие теги отвечают за создание строк и столбцов в
таблице?
3.
Как установить заголовок для таблицы?
4.
Как установить заголовок строки или столбца?
5.
Что означают атрибуты тега <TABLE>: border, cellpadding, cellspacing и какие
значения могут принимать?
6.
Как установить выравнивание таблицы?
7.
Какие атрибуты тега <TABLE> отвечают за задание цвета фона и применение фоновой картинки для
таблицы?
8.
Что означает запись <td rowspan=2>…</td>?
9.
Что означает запись <td colspan=2>…</td>?
10. С помощью каких
атрибутов можно установить горизонтальное и вертикальное выравнивание в ячейках
таблицы, и какие значения могут принимать эти атрибуты?