Сервер поддерживается Центром Информационных Технологий (095)932-9212, 932-9213, 939-0783 E-mail: |
|
Сервер Информационных Технологийсодержит море(!)аналитической информации
|
---|
Структура таблиц в HTML включает строки и столбцы, которые могут имет заголовки (headers имена, титулы, объяснения). Таблица в обычном варианте представляется в естественном виде, с согласованно расположенными столбцами. Таблицы - важнейшее улучшение в HTML 3.2 по сравнению с HTML 2.0. С другой стороны конструкция таблиц HTML 3.2 является всего лишь подмножество Табличной модели HTML3(RFC 1942)
D HTML табличные элементы обычно называю ячейками, чтобы избежать смешивания табличным элементом(TABLE element), который в описании HTML соответствует всей таблице
Неудивительно, что таблицы еще не поддерживаются всеми броузерами, и, если даже поддержка существует, она может быть не очень качественной. Поэтому для представления данных, имеющих структуру, подобную матрице, не всегда используются таблицы
Для представления таблиц используются нескольких видов тегов HTML
Давайте начнем с очень простого примера. Он связан с представлением таблицы чисел 2 на 2 (единичная матрицa)без каких либо заголовков. Код HTML выглядит следующим образом:
Пример table1.html
1 | 0 |
0 | 1 |
и обычно представляется броузером следующим образом:
Таким образом, тег TABLEзаключают в себе табличные строки, каждая из которых обрамляется тегам TR, и табличные ячейки, обрамляемые тегам TD. Это согласуется с логической структурой таблицы, как множеством строк, состоящих из ячеек. Вы можете сократить табличную структуру, опустив конечные теги TD и TR, однако утратите до некоторой степени ясность представления
1 | 0 |
0 | 1 |
Более того, хотя удаление конечных тегов допустимо в HTML 3.2, отдельные броузеры (включая Netscape)не смогут без них правильно представить таблицу
Использовани пробелов и переводов строкв коде HTML для таблицы не всегда хорошо, однако это иногда необходимо для позиционирования элементов таблицы в коде HTML так, чтобы образы в одних и тех же столбцах располагались бы понятно дл Вас(или для кого-то, работающего с документом HTML)
Есть несколько элементов, которые Вы можете добавить к вышерассмотренной простой табличной модели
Следующий, довольно типичный пример показывает все вышеупомянутые особенности:
Пример table2.html
An illustration of the use of the TABLE element in HTML.
Finnish name | English name | Scientific name |
---|---|---|
hirvi | elk | Alces alces |
orava | squirrel | Sciurus vulgaris |
susi | wolf | Canis lupus |
Заметьте, что некоторые табличные элементы в примере содержа разметку текста;в данном случае ест специфические причиныдля использования элемент I
Если у Вас есть логически параллельный текст, например, документ на нескольких языках, или несколько вариантов одного текста, элемент TABLE, по-видимому, наилучший способ его представления. (Использование элемент PRE- возможно, но требует утомительного форматирования, в результате которого формируется текст с одноразмерным шрифтом.)
В простейшем случае Вы можете записать элемент TABLE (с атрибутами по умолчанию), который содержит единственную строку с двумя ячейками данных, каждая из которых включает абзац
В более общем случае Вы должны разделить параллельный текст на логические части (абзацы), и сделать каждую часть ячейкой таблицы. Это может потребовать определенной работы (если у Вас нет соответствующей программы для этого), так как Вы должны уделить внимание правильной последовательности работы с текстом:после первой части первого текста Вы должны работать с первой частью второго текста и т.д
Нижеследующий пример представляет фрагмент текста из Библии в трех вариантах и переводах:
Пример table3.html
Latin (Vulgate) | English (King James version) | Finnish (1992 version) | |
---|---|---|---|
1 | In principio creavit Deus caelum et terram. | In the beginning God created the heaven and the earth. | Alussa Jumala loi taivaan ja maan. |
2 | Terra autem erat inanis et vacua et tenebrae super faciem abyssi et spiritus Dei ferebatur super aquas. | And the earth was without form, and void; and darkness was upon the face of the deep. And the Spirit of God moved upon the face of the waters. | Maa oli autio ja tyhjд, pimeys peitti syvyydet, ja Jumalan henki liikkui vetten yllд. |
3 | Dixitque Deus "Fiat lux"et facta est lux. | And God said, Let there be light:and there was light. | Jumala sanoi:"Tulkoon valo!"Ja valo tuli. |
Заметим, что атрибуты ALIGN VALIGNмогут существенно влиять на качество отображения. Броузеры не могут определять тип таблиц по их содержанию, поэтому автор документа может подправить формат документа с помощью средств выравнивания
Как упоминалось при рассмотрени списковых элементов, подобны DL, обычно списки определений отображаются не очень удачно. Существует, однако, несколько способов улучшить такое отображение
Использование элемент TABLEдля дефинитивного списка, вероятно, не лучшее его применение, однако, нередко это оказывается полезным, особенно, когда можно использовать рамки и действия, подобные выравниванию. Для ознакомления, например, с простыми примерами представления дефинитивных списков, в частности, таблиц с атрибутами, устанавливаемыми по умолчанию, посмотрите докумен Примеры различных списковых элементов в HTMLи нижеследующий пример:
Пример table4.html
alpha | the first letter of the Greek alphabet |
---|---|
beta | the second letter of the Greek alphabet |
gamma | the third letter of the Greek alphabet. |
Для многих людей таблицы - это таблицы числовых данных, но таблицы также хорошо могут представлять и другие данные
Для числовых таблиц соответствующе выравнивани обычно важно для формирования легко читаемого представления
Целые значения чисел в столбцах должны быть выровнены по правому краю. Этого, в принципе, добиться несложно. Существует два варианта
Числа, содержащие десятичную точку (или во многих языках - запятую)должны быть выровнены согласно этому правилу, что, к сожалению, невозможно в HTML 3.2. (Известны попытки удовлетворения подобных запросов, однако на сегодня мало кто поддерживает их.)Существует, правда, один вариант решения - представлять такие значения так, чтобы в каждой колонке справа от десятичной точки было одно и то же количество цифр и использовать при этом ALIGN=RIGHT
Однако, отображение может получиться неудовлетворительным, если цифры используют пропорциональные шрифты, где размеры цифр существенно отличаются. Возможно, но очень утомительно, исправить это укладыванием данных в каждую ячейку с использованием элемент TT. (Заметьте, что внутри элемента TT запрещено использование элемента TABLE!)
Нижеследующие примеры содержат вручную отформатированную таблицу, представленную с использованием элемент PRE, а затем для тех же данных используется элемен TABLE. В общем, для использования элемента TABLE требуется больше работы и внимания, однако результаты зачастую много лучше
Пример table5.html
Measurement results:time temperature pressure 12:00 26 12.8 12:15 22.5 9.8 12:30 11 1.65 12:45 3.3 0.03 13:00 0.05 0.002
time | temperature | pressure |
---|---|---|
12:00 | 26.00 | 12.800 |
12:15 | 22.50 | 9.810 |
12:30 | 11.00 | 1.650 |
12:45 | 3.30 | 0.030 |
13:00 | 0.05 | 0.002 |
Часто требуется представить большой набор относительно малых образов. Например, у нас есть документ о различных странах и мы хотим создать меню из имен стран, чтобы использовать его, как индекс. И индекс должен использовать обычны связи, например
Afghanistan
Теоретически очевидный ответ для реализации этого - использовать конструкци MENU. Однако, как упомянуто и пояснено примерами в раздел общее рассмотрение списков, это практически неосуществимо. Поэтому, если мы хотим иметь меню в многостолбцовом формате, как это делается обычно, то должны использовать другие конструкции
Один из возможных вариантов - это отформатировать меню вручную и заключить его в элемен PRE. Если образами меню является связанный текст, то сначала надо отформатировать его как текст, затем добавить теги якоря (A). Для ясности следующий пример представлен без связей:
Пример menu1.html
Afghanistan Albania Algeria American Samoa Andorra Angola Anguilla Antarctica Antigua and Barbuda Arctic Ocean Argentina Armenia
Другой вариант - представить образы просто как текстовые абзацы, с использованием пробелов или пробелов и запятых, как разделителей. Это значит, что броузер разделит текст на строки, и это представление будет очень компактным:
Пример menu2.html
Afghanistan, Albania, Algeria, American Samoa, Andorra, Angola, Anguilla, Antarctica, Antigua and Barbuda, Arctic Ocean, Argentina, Armenia
Также можно обеспечить перевод строки с помощью элемент BR. Или, если Вам кажется, что образы недостаточно различимы в представлении, попробуйт ввести перед каждым образом специальный символ, подобный *(используя при этом пробел, как разделитель)
Однако, представление должно быть таким, чтобы все образы занимали одно и то же пространство. Поэтому можно либо использовать элемент PRE, либо затратить усилия на конструирование подходящего элемента TABLE. Например:
Пример menu3.html
Afghanistan | Albania | Algeria | American Samoa |
Andorra | Angola | Anguilla | Antarctica |
Antigua and Barbuda | Arctic Ocean | Argentina | Armenia |
Заметим, что это решение не совсем идеальное. Оно использует структур TABLE, в которой разделение на строки сделано только для целей компоновки, а добавление новых образов потребует полной реструктуризации таблицы. Как правило, необходимо вставить атрибут WIDTH, чтобы сохранить ширину табличных столбцов - такой спецификации свойственна независимость от технической реализации, если размеры задаются пикселях
Иногда требуется создать табличный элемент, объединяющий две или более ячейки, как в горизонтальном, так и в вертикальном направлении. В качестве примера рассмотрим склонение латинских местоимений
neut. masc. fem. nom. id is ea acc. id eum eam gen. eius eius eius dat. ei ei ei abl. eo eo e
Очевидно, этот пример лучше реализовать с помощью таблицы HTML, и, используя вышеописанные конструкции, можно записать информацию простым табличным представлениемданных. Однако, если Вы хотите сделать это точнее, без представления одинакового содержимого в разных ячейках, Вы можете использовать атрибуты ROWSPAN и COLSPAN, как это показано ниже:
Пример span.html
neuter | masc. | fem. | |
---|---|---|---|
nom. | id | is | ea |
acc. | eum | eam | |
gen. | eius | ||
dat. | ei | ||
abl. | eo | ea |
В данном примере первая ячейка специфицируется с ROWSPAN=2, что в действительности означает, что две смежные ячейки в одном и том же столбце объединяются в одну ячейку. Заметим, что когда Вы пишете код HTML для следующей строки (второй элемен TR), вы просто пропускаете элемент ячейки, соответствующий месту, которое уже взято для использования
Таблицы могут быть вложенными, так как элемент TD THмогут содержать блоковый элементи табличный. Во вложенных таблицах легко сделать ошибки, однако их использование все же оправданно
Вам необходимо быт очень внимательнымв написании кода HTML для вложенных таблиц. Никаких новых элементов или особенностей для этого не требуется, только сочетание того, что уже было описано. Однако из-за сложности (вложенности), легко сделать ошибки, результатом которых является "грязный"вывод, а на обнаружение ошибок требуется много времени
Простейший случай - таблица с единственной строкой, состоящей из двух элементов, каждый из которых - таблица. Это может быть использовано для сравнительного представления двух подобных таблиц. Усложняя наш грамматический пример, далее приводим таблицу, содержащую две таблицы - одна для склонений в единственном числе, другая - во множественном:
Пример nt.html
tbl
|
|
Обратите внимание на использование конечных тегов, например, . Согласно спецификациям HTML 3, такой ж код с пропуском конечных теговявляется эквивалентным, приведенному выше. Однако для Netscape это является ошибкой и представление вложенной таблицы будет неверным при отсутствии конечных тегов.
У нас часто спрашивают:каким образом для данных в таблице можно задавать вид, размер и цвет шрифта
Короткий ответ такой:никак. Когда необходимо логическая разметкадл текстовых элементовиспользуется в таблицах также, как в обычном тексте. (Предыдущее обсуждениесодержи простой примерэтого.)
Если предположить, что Вам действительно необходимо задать вид, размер и цвет шрифта, учтите, что Вы можете рассчитывать на работу HTML кода в большинстве броузеров (допуская, что они обладают полной поддержкой таблиц), но это не соответствует стандартам. В частности, в Netscape элемен BASEFONTне влияет на текст в таблицах
Коротко по поводу вида, размера и цвета шрифта
Таблицы стилейпредоставляют инструментальные средства для более детального исполнения, но поддержка некоторых из них в броузерах все еще в стадии разработки