Таблицы
Таблицы выполняют две функции. Первая - представление
и оформление данных в виде таблиц. В этом случае таблицы, как правило,
имеют видимые
границы, иногда - рисунок в качестве заднего фона. Таблицы также являются
главным элементом языка HTML, при помощи которого делается форматирование
документа. В HTML нет команд, которые бы позволили сдвинуться на 5 миллиметров
вправо или вниз. Такие команды есть в TeX'e. Например, для того чтобы
на одном уровне разместить несколько элементов, используется таблица. В
этом случае сама таблица, как правило, уже невидима для пользователя.
Необходимо отметить, что таблицы не предназначались для форматирования
HTML-документов. Верстальщики начали использовать таблицы, как инстумент
форматирования, из-за отсутствия в HTML специально предназначенны для этого команд.
Поэтому часто при верстке дизайна сайта возникают большие проблемы.
Начало таблицы
объявляется командой <table>, эта команда требует закрывающей части
</table>. Новый ряд в таблице объявляется командой <tr>. Ячейка
в ряду объявляется командой <td>. Для <tr> и <td> закрывающие
команды необязательны.
Пример:
<table border=1>
<tr> <td> Cell #1 <td> Hello, World!
<tr> <td> Это ячейка номер 3 <td> 4
</table>
|
Cell #1 | Hello, World!
| Это ячейка номер 3 | 4
|
|
У команды <table> есть следующие атрибуты:
- align
- left, center, rigth
- width
- ширина в пикселях или процентах
- height
- высота
- border
- ширина границы(рамки) в пикселях
- bordercolor
- цвет границы(рамки)
- cellspacing
- расстояние между ячейками
- cellpadding
- расстояние от внутренней рамки ячейки до ее содержимого
- background
- фоновая картинка
- title
- устанавливает всплывающую подсказку
- frame
- определяет, какие стороны рамки будут видны, возможные значения:
- void - никаких сторон. В спецификации HTML4.0 написано, что это
значение по умолчанию, однако броузер Internet Explorer почему-то
об этом не знает. Когда я установил это значение, то рамка исчезла.
- above - только сверху
- below - только снизу
- hsides - только горизонтальные рамки
- vsides - только вертикальные
- lhs - только левые рамки
- rhs - только правые
- box - со всех сторон
- border - тоже самое
- rules
- правило, которое будет применяться к ячейкам внутри таблицы,
возможные значение:
- none - нет правил, значение по умолчанию
- groups - применяются к группам, здесь я не буду рассматривать эти команды за ненадобностью
- rows - применяются к рядам
- cols - к ячейкам
- all - ко всему
Я перечислил параметры frame и rules затем, чтобы дотошные читатели не завалили
меня письмами с упреками, что я что-то забыл. У меня ни разу не возникала в них необходимость.
Если у вас найдется красивый пример использования этих параметров, то, пожалуйста,
пришлите его мне.
Сначала мы рассмотрим использование таблиц по их прямому назначению, а потом
перейдем к эффективному форматированию HTML-документа при помощи таблиц.
Пример таблицы с выравниванием по центру, размерами 300х200 пикселей,
шириной рамки пять пикселей и синим цветом рамки. Расстояние между соседними
ячейками устанавливается равным десяти пикселям. Расстояние от внутренней рамки
ячейки до содержимого тридцать пикселей.
<table align=center width=300 height=200 border=5
bordercolor=0000FF cellspacing=10 cellpadding=30
background=images/07.jpg
title="Всплывающая подсказка для данной таблицы">
<tr><td> 1 <td> 2
<tr><td> 3 <td> 4
</table>
|
|
Для вывода данных в таблицах лучше использовать ряды с чередующимися
оттенками одного цвета и узкой рамкой. Ниже приведены два примера. Обратите
внимание на то, как построена рамка в первой, а как во второй таблице.
В первом случае устанавливается атрибут border=1. Во втором случае я
хотел получить рамку размером один пиксель черного цвета. Но установив
border=1 и bordercolor=000000, я получил черную рамку шириной в два
пиксела. Пришлось извернуться, установить пространство между ячейками в
один пиксель и задать цвет фона таблицы черным. Отлаживался я на броузере
Internet Explorer 4.0. В Netscape 4.06 для того чтобы получить красивые
рамки, придется делать вложенные таблицы. Кстати, здесь я опираюсь на
стандарт HTML4.0, поэтому Netscape4х может многие примеры отображать некорректно.
<table align=center width=300 border=1
cellspacing=0 cellpadding=0>
<tr bgcolor=CCCCFF> <td> Имя<td> Фамилия
<tr bgcolor=EEEEEE> <td> Иван<td> Иванов
<tr bgcolor=CCCCCC> <td> Петр<td> Петров
</table>
<br>
<table align=center width=300 border=0
cellspacing=1 cellpadding=0
bgcolor=000000>
<tr bgcolor=CCCCFF align=center> <td> Имя<td> Фамилия
<tr bgcolor=EEEEEE> <td> Иван<td> Иванов
<tr bgcolor=CCCCCC> <td> Петр<td> Петров
</table>
|
Имя | Фамилия
| Иван | Иванов
| Петр | Петров
|
Имя | Фамилия
| Иван | Иванов
| Петр | Петров
|
|
Теперь давайте рассмотрим атрибуты команд <tr> и <td>
- width
- задает ширину ряда
- height
- задает высоту ряда
- bgcolor
- цвет фона
- align
- выравнивание содержимого всех ячеек по горизонтали, потом в каждой
конкретной ячейке значение этого атрибута можно будет переопределить
- valign
- то же самое, но по вертикали
- title
- всплывающая подсказка
- background
- фоновая картинка
У команды <td> есть еще два атрибута colspan и rowspan. Они определяют, для
какого количества колонок и рядов, ячейка является общей, или другими словами в
каком количестве
колонок и рядов состоит данная ячейка. По умолчанию эти атрибуты имеют
значение единица, т.е. ячейка находится в одном ряду и ровно в одном столбце.
<table align=center width=300 border=0
cellspacing=1 cellpadding=0
bgcolor=000000>
<tr bgcolor=CCCCFF align=center>
<td> 1
<td colspan=2> Эта ячейка находится в двух колонках
<td rowspan=3> А эта ячейка - в трех рядах
<tr bgcolor=EEEEEE>
<td> Иванов
<td> Иван
<td> Иванович
<tr bgcolor=CCCCCC>
<td> Петров
<td> Петр
<td> Петрович
</table>
|
1 | Эта ячейка находится в двух колонках | А эта ячейка - в трех рядах
| Иванов | Иван | Иванович
| Петров | Петр | Петрович
|
|
Упражнение
Напишите HTML-код для следующей таблицы. В качестве подсказок я указал номера
рядов и ячеек. Попробуйте реализовать это несколькими вариантами различного
кода. Подсчитайте, сколько всего существует различных вариантов.
1_1
| 1_2
| 1_3
| 1_4
|
2_1
| 2_2
|
3_1
| 3_2
| 3_3
| 3_4
| 3_5
|
4_1
| 4_2
| 4_3
| 4_4
|
5_1
| 5_2
| 5_3
| 5_4
|
6_1
| 6_2
|
И последнее, что стоит сказать непосредственно о свойствах таблиц, то, что
они могут быть вложенными. В любой ячейке можно разместить таблицу, рисунок
и любой другой объект. Но настоятельно рекомендую избегать вложенных
таблиц. Используйте атрибуты colspan и rowspan. Вложенные таблицы часто
некорректно отображаются некоторыми броузерами. Размер вашего HTML-кода
увеличивается и сам HTML-код усложняется.
Например, все что вы видите на экране, находится в таблице, но
это уже относится к форматированию, и об этом в следующем параграфе.
Форматирование HTML-документов.
Здесь мы рассмотрим приемы эффективного форматирования
HTML-документов при помощи таблиц.
Документ фиксированной ширины
Вы можете обратить внимание на страницы в Сети, где форматирование текста
не зависит от размеров окна броузера. Это так называемые фиксированные сайты
или HTML-документ. У них четко задана ширина.
В самом начале такого документа после команды <body> идет таблица:
<table align=center width=700>
<tr><td>
Теперь форматирование текста не зависит от размеров окна броузера. В любом
окне текст будет выглядеть одинаково, шириной в 700 пикселей. Не забудьте
перед закрывающей командой </body> закрыть эту таблицу - </table>.
Несколько элементов на одной линии
При вставке формул в документ стоит задача разместить на одном уровне
картинку формулы и ее номер или название.
<table width=100%>
<tr>
<td width=50% align=center><img src=images/it03.gif></td>
<td width=50% align=center>(1)</td>
</tr>
</table>
|
| (1) |
|
Создание "окошек"
Новости на главных страницах сайтов, сообщения в гостевых книгах часто оформляют
в окошке. Такие окошки делаются при помощи таблиц. Вы устанавливаете cellspacing=0
и cellpadding=0, а далее делаем красивое окошко. Рамки являются ячейками
и рядами. Вот пример:
<table align=center width=300 border=0
cellspacing=0 cellpadding=0
bgcolor=000000>
<tr bgcolor=CCCCFF>
<td colspan=3> Тема новости
<tr bgcolor=EEEEEE>
<td width=2 bgcolor=CCCCFF>
<td> Вчера завершил работу над третьей главой книги.
<td width=2 bgcolor=CCCCFF>
<tr bgcolor=EEEEEE>
<td width=2 bgcolor=CCCCFF>
<td align=right> 10 декабря 2000
<td width=2 bgcolor=CCCCFF>
<tr bgcolor=CCCCFF>
<td colspan=3 height=2>
</table>
|
Тема новости
|
| Вчера завершил работу над третьей главой книги. |
|
| 10 декабря 2000 |
|
|
|
Отступы
При помощи таблиц можно делать горизонтальные и вертикальные отступы в
пикселях. Учтите, что в Netscape пустая ячейка не отображается, поэтому в
нее надо вставлять прозрачный gif-файл. Кстати, это еще один прием форматирования.
Вы создаете прозрачный gif, размером один на один пиксель, а в команде img
указываете нужные вам ширину и высоту.
Главная страница сайта
Ну и наконец большинство главных страниц сайтов создано при помощи таблиц, в
ячейках которых располагаются меню, графика и текст. В качестве примеров можете
посмотреть HTML-код главных страниц сайтов наших работ. Некоторая дополнительная
информация по верстке будет дана в заключительной части книги.
|