[ назад ] [ содерж ] [ вперед ]
  [ в конец ]  

3. Основы форматирования

3.3. Форматирование табличных данных

Таблицы явлются важнейшим элементом HTML-документов, т.к. кроме богатых возможностей по представлению структурированных данных они широко применяются как средство дл создания "каркасов" Web-страниц.

Таблицы в HTML определяются при помощи контейнера <TABLE>...</TABLE>, заключающего в себе другие элементы таблицы: название, заголовки ячеек и их содержимое. Атрибутами контейнера <TABLE> задается формат линии-сетки и общие правила форматирования (общий формат действуют, если иной формат не задан атрибутами формата конкретных строк и ячеек ).

Наименование таблицы определяется при помощи контейнера <CAPTION>...</CAPTION>. Выравнивание наименования задается при помощи атрибута ALIGN, который может принимать значения TOP (сверху таблицы) и BOTTOM (снизу таблицы).

Данные в таблице организованы построчно, каждая новая строка таблицы задается тегом <TR>...</TR> (закрывающий тег контейнера </TR> можно не использовать). Для каждой строки таблицы при помощи специальных атрибутов тега <TR> можно управлять общим форматированием составлющих строку ячеек.

Строки таблицы разбиваются на ячейки при помощи тегов ячеек-заголовков <TH>...</TH> и тегов ячеек-данных <TD>...</TD> (допускается форма записи без закрывающих тегов). Как и для строк таблицы при помощи специальных атрибутов тегов <TD> и <TH> можно управлять форматированием конкретных ячеек таблицы.

Структура таблицы:

<TABLE> - начало контейнера таблицы
<CAPTION> название таблицы </CAPTION>
<TR> <TH> 1 заголовок </TH>…<TH> N заголовок </TH> </TR> - первая строка / шапка
<TR> <TD> ячейка 1/1 </TD>…<TD> ячейка N/1 </TD> </TR> - 1 строка
<TR> <TD> ячейка 1/i </TD>…<TD> ячейка N/i </TD> </TR> - i строка
<TR> <TD> ячейка 1/M </TD>…<TD> ячейка N/M </TD> </TR> - последняя строка
</TABLE> - конец контейнера таблицы

Таким образом, простейшая таблица, без линий сетки, в HTML-документе определяется следующим образом:

<TABLE>
<CAPTION ALIGN=TOP>Список друзей и подруг</CAPTION>
<TR><TH>ФИО</TH><TH>Телефон</TH></TR>
<TR><TD>Иванов Иван Иваныч</TD><TD>35-35-35</TD></TR>
<TR><TD>Валина Валентина Валентиновна</TD><TD>46-46-46</TD></TR>
</TABLE>

А вот, что у нас получится в окне броузера:

Список друзей и подруг
ФИОТелефон
Иванов Иван Иваныч35-35-35
Валина Валентина Валентиновна46-46-46

Управление выравниванием элементов таблиц

Для выравнивания элементов таблиц в тегах <TABLE>,<TH> и <TD> используется много различных атрибутов. Рассмотрим наиболее полезные и общеупотребимые из них:

АтрибутТегиОписание
ALIGN <TABLE> Общее горизонтальное выравнивание таблицы на странице - LEFT/RIGHT/CENTER
<TR> Общее выравнивание элементов строки - LEFT/RIGHT/CENTER/CHAR
<TH> Выравнивание заголовка - LEFT/RIGHT/CENTER/CHAR (по умолчанию CENTER)
<TD> Выравнивание данных в ячейке - LEFT/RIGHT/CENTER/CHAR (по умолчанию LEFT )
CHAR ALIGN=CHAR Задает символ-выравниватель, при использование атрибута выравнивания ALIGN=CHAR. Например:
<TR ALIGN=CHAR CHAR=","><TD>1,35</TD></TR>
CHAROFF ALIGN= CHAR Задает отступ (в % ширины ячейки или в пикселях) относительно начала ячейки, символов заданных атрибутом CHAR. Например:
<TR ALIGN=CHAR CHAR="," CHAROFF="10%"> <TD>1,35</TD><TD>-1,45</TD></TR>
VALIGN<TABLE> Общее вертикальное выравнивание элементов таблицы - BOTTOM/MIDDLE/TOP (по умолчанию MIDDLE ).
<TR> Общее выравнивание элементов строки - BOTTOM/MIDDLE/TOP/BASELINE
<TH> Выравнивание заголовка - BOTTOM/MIDDLE/TOP
<TD> Выравнивание данных в ячейке - BOTTOM/MIDDLE/TOP
CELLPADDING <TABLE> Свободное пространство между содержимым ячеек и их границами
CELLSPACING <TABLE> Свободное пространство между границами смежных ячеек
WIDTH <TABLE> Ширина таблицы в пикселях или процентах ширины окна броузера.
<TH>,<TD> Ширина ячейки таблицы в пикселях или процентах от ширины таблицы.
HEIGHT <TABLE> Высота таблицы в пикселях или процентах ширины окна броузера
<TH>,<TD> Высота ячейки таблицы в пикселях или процентах от ширины таблицы.

Управление линиями сетки таблиц

Для управления линиями сетки таблиц используется атрибут BORDER контейнера <TABLE>, который задает толщину рамки таблицы в пикселях (по умолчанию рамки нет, BORDER=0). В стандарте HTML 4, появились новые атрибуты таблиц, строк и ячеек: FRAME для более гибкого управления линиями сетки таблиц и RULES для создания дополнительных линий разделителей групп в таблицах.

Данные атрибуты поддерживаются современными броузерами и могут принимать следующие значения:

Атрибут FRAME:

Атрибут RULES:

Например:

<TABLE >...</TABLE> равнозначно <TABLE FRAME=VOID>...</TABLE>

<TABLE BORDER>...</TABLE> равнозначно <TABLE FRAME=BOX>...</TABLE>

Управление цветом элементов таблиц

Атрибуты управления цветом элементов таблиц появились в HTML как расширения стандарта, предлагаемые основными поставщиками Web-броузеров (Microsoft и Netscape).

Расширения управления цветом: BORDERCOLOR - цвет рамки и BGCOLOR - цвет фона, используются как атрибуты для тегов: <TABLE>, <TR>, <TH>, <TD>. Соответственно областью их действия может быть вся таблица, строка или отдельно взятая ячейка.

Например:

<TABLE BORDER BORDERCOLOR=RED BGCOLOR=YELLOW>...</TABLE> - таблица.

<TR BORDERCOLOR=RED BGCOLOR=YELLOW></TR> - строка.

<TD BORDERCOLOR=RED BGCOLOR=YELLOW></TD> - ячейка.

Объединение элементов таблиц.

Для создания сложных таблиц не обойтись без объединения строк и столбцов. Для объединения ячеек соседних строк и столбцов таблицы, в HTML используются атрибуты ROWSPAN и COLSPAN тегов <TH> и <TD>. Данные атрибуты задают количество объединемых ячеек в строке (ROWSPAN=N) или столбце (COLSPAN=N). Рассмотрим использование данных атрибутов на примере таблицы.

HTML код таблицы:

<TABLE BORDER ALIGN=CENTER>
<TR ALIGN=CENTER>
<TH COLSPAN=3>ДРУЗЬЯ И ПОДРУГИ</TH>
</TR>
<TR ALIGN=CENTER>
<TD ROWSPAN=2>ДРУЗЬЯ</TD><TD>Коля</TD><TD>44-44-44</TD>
</TR>
<TR ALIGN=CENTER>
<TD>Вася</TD><TD>33-33-33</TD>
</TR>
<TR ALIGN=CENTER>
<TD ROWSPAN=2>ПОДРУГИ</TD><TD>Маша</TD><TD>11-11-11</TD>
</TR>
<TR ALIGN=CENTER>
<TD>Глаша</TD><TD>22-22-22</TD>
</TR>
</TABLE>

Внешний вид таблицы:

ДРУЗЬЯ И ПОДРУГИ
ДРУЗЬЯКоля44-44-44
Вася33-33-33
ПОДРУГИМаша11-11-11
Глаша22-22-22

В стандарте HTML 4 повились новые теги для группировки (не объединения, а именно группировки) строк и столбцов таблицы в группы с общими свойствами. Это теги <COLGROUP> и <COL> - группировка и описание свойств столбцов, <THEAD> - определение шапки таблицы, <TBODY> - определение группы тело-таблицы, <TFOOT> - определение нижней строки. Полезным атрибутом тегов <COLGROUP> и <COL> является атрибут SPAN=N, который распространяет свойства, заданные данными тегами на N-столбцов в группе.

Использование данных тегов существенно облегчает компоновку и форматирование таблиц. Схема их применения следующая (в данном примере применяется одиночная форма записи тегов <THEAD>, <TBODY> и <TFOOD>, но в случае использования одного из них, необходимо применять контейнерную форму):

<TABLE атрибуты таблицы>
<COLGROUP общие атрибуты 1-ой группы>
<COL SPAN=10 доп. атрибуты первых 10 столбцов таблицы>
<COL доп. атрибуты 11 столбца таблицы>
...
<COLGROUP общие атрибуты последней группы>
<COL доп. атрибуты j столбца таблицы>...<COL доп. атрибуты N столбца таблицы>
<THEAD>
<TH><TH>1 заголовок</TH>...<TH>N заголовок</TH><TR>
<TBODY>
<TR><TD>1 столбец</TD>...<TD>N столбец</TD><TR>
...
<TR><TD>1 столбец</TD>...<TD>N столбец</TD><TR>
<TFOOT>
<TR><TD>1 итоговый столбец</TD>...<TD>N итоговый столбец</TD><TR>
</TABLE>

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

Старый подходНовый подход
<table border align=center>
<tr>
<th width=80>тип
<th width=120>название
<th width=50>1998
<th width=50>1999
<th width=50>2000
</tr>
<tr align=center>
<td width=80>тип1
<td width=120>название1
<td width=50 align=right>1,2
<td width=50 align=right>1,3
<td width=50 align=right>1,4
</tr>
<tr align=center>
<td width=80>тип2
<td width=120>название2
<td width=50 align=right>2,2
<td width=50 align=right>2,3
<td width=50 align=right>2,4
</tr>
</table>
<table border align=center>
<col width=80 align=center>
<col width=120 align=center>
<col width=50 align=right span=3>
<tr>
<th>тип<th>название
<th align=center>1998<th align=center>1999<th align=center>2000
</tr>
<tr>
<td>тип1<td>название1
<td>1,2<td>1,3<td>1,4
</tr>
<tr>
<td>тип2<td>название2
<td>2,2<td>2,3<td>2,4
</tr>
</table>

А вот результат обоих наших деяний:

типназвание199819992000
тип1название11,21,31,4
тип2название22,22,32,4

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

Пример 5. Форматирование таблиц. [просмотр примера в окне]


<HTML>
<HEAD>
<TITLE>Использование таблиц в документах</TITLE>
</HEAD>
<BODY BGCOLOR="WHITE", TEXT="BLACK", LINK="BLUE", ALINK="RED", VLINK="NAVY">
<H1 align=center>Список моих друзей и подруг</H1>
</P>
<TABLE BORDER ALIGN=CENTER VALIGN=MIDDLE WIDTH="50%">
<TR BGCOLOR=#FAD503>
<TH>Категория</TH><TH>ФИО</TH><TH>Фото</TH><TH>Телефон</TH>
</TR>
<TR ALIGN=CENTER>
<TD ROWSPAN=2 BGCOLOR=#05C9FA>ДРУЗЬЯ</TD><TD>Коликов Коля</TD>
<TD WIDTH=50 HEIGHT=50><IMG SRC="boy1.gif"></TD><TD>44-44-44</TD>
</TR>
<TR ALIGN=CENTER>
<TD>Васюков Вася</TD>
<TD WIDTH=50 HEIGHT=50><IMG SRC="boy2.gif"></TD><TD>33-33-33</TD>
</TR>
<TR ALIGN=CENTER>
<TD ROWSPAN=2 BGCOLOR=#F9ACDE>ПОДРУГИ</TD><TD>Машина Маша</TD>
<TD WIDTH=50 HEIGHT=50><IMG SRC="girl1.gif"></TD><TD>11-11-11</TD>
</TR>
<TR ALIGN=CENTER>
<TD>Глашева Глаша</TD>
<TD WIDTH=50 HEIGHT=50><IMG SRC="girl2.gif"></TD><TD>22-22-22</TD>
</TR>
</TABLE>
</P>
<HR>
<P ALIGN=CENTER>&copy 2001 Вебмастер
<A HREF="mailto:myname@mail.ru">Попробуй свзаться со мной</A>
</BODY>
</HTML>


В заключении следует отметить, что таблицы очень удобный инструмент для компоновки и форматирования элементов Web-страниц. Использование таблиц без линий сетки позволяет жестко связать текстовые блоки документа с графикой и другими объектами.

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


  [ на начало ]  
[ назад ] [ содерж ] [ вперед ]

Ваши вопросы и замечания прошу направлять dmitriy_v_k@hotmail.com
© 2001 Дмитрий Красюк
Дата последней модификации: Пятница Март 30, 2001.

Hosted by uCoz