Популярные скрипты
 

 Раздел: Учебники / Учебник по HTML

Глава 2

Списки

В языке HTML предусмотрен специальный набор тегов для представления информации в виде списков. Списки являются одним из наиболее часто употребляемых форм представления данных как в электронных документах, так и в печатных. Со списками мы встречаемся практически ежедневно, — это может быть список необходимых покупок в магазине, учеников в классе или просто дел, которые необходимо выполнить. Возможность организации списковых структур имеется во многих текстовых редакторах, в частности, мощный текстовый процессор Microsoft Word обладает удобными средствами форматирования списков различного вида (возможности создания HTML-списков при помощи Microsoft Word обсуждаются в главе 8). Приведем ряд случаев, для которых использование списков довольно удобно:

  • Объединение фрагментов информации в единую структуру для придания удобочитаемого вида.


  • Описание сложных пошаговых процессов.


  • Расположение информации в стиле оглавления, пункты которого указывают на соответствующие разделы документа.

Заметим, что приведенные выше пункты как раз и организованы в виде списковой структуры.

В языке HTML предусмотрены следующие основные типы списков: маркированный, нумерованный и список определений. Для реализации списков различных типов используются следующие тэги: <UL>, <OL>, <DL>, <DIR>, <MENU>. С помощью различных типов встроенных в документ списков могут быть реализованы самые разные возможности, описанию которых и посвящена данная глава. Рассматриваются особенности построения списков различных типов, а также применения вложенных друг в друга списков.

Маркированный список

Одним из типов списков, реализованных в языке HTML, является маркированный список. Иначе списки такого типа называют ненумерованными или

неупорядоченными. Последнее название часто используется как формальный перевод названия соответствующего тега <UL>, с помощью которого и организуются списки такого типа в HTML-документах (UL — Unordered List, неупорядоченный список).

В маркированном списке для выделения его элементов используются специальные символы, называемые маркерами списка (часто их называют буллетами, что является формальным озвучением английского термина bullet — пуля). Вид маркеров списка определяется браузером, причем при создании вложенных списков браузеры автоматически разнообразят вид маркеров различного уровня вложенности.

Тэги <UL> и <LI>

Для создания маркированного списка необходимо использовать тэг-контейнер <UL> </UL>, внутри которого располагаются все элементы списка. Открывающий и закрывающий тэги списка обеспечивают перевод строки до и после списка, отделяя, таким образом, список от основного содержимого документа, поэтому здесь нет необходимости использовать теги абзаца <P> или принудительного перевода строки <BR>.

Каждый элемент списка должен начинаться тэгом <LI> (LI — List Item, элемент списка). Тег <LI> не нуждается в соответствующем закрывающем тэге, хотя его наличие в принципе не возбраняется. Браузеры обычно при отображении документа начинают каждый новый элемент списка с новой строчки.

Приведенных сведений достаточно для построения элементарного маркированного списка. Приведем пример HTML-документа, использующего маркированный список, отображение которого браузером показано на рис. 2.1.

<HTML>

<HEAD>

<TITLE>Пример маркированного списка</TITLE>

</HEAD>

<BODY>

<UL>

<B>Знаки зодиака:</B>

    <LI>Овен

    <LI>Телец

    <LI>Близнецы

    <LI>Рак

    <LI>Лев

    <LI>Дева

    <LI>Весы

    <LI>Скорпион

    <LI>Стрелец

    <LI>Козерог

    <LI>Водолей

    <LI>Рыбы

</UL>

</BODY>

</HTML>

01.gif

Рис. 2.1. Отображение браузером маркированного списка

Заметим, что кроме элементов списка, отмечаемых тэгом <LI>, могут присутствовать и другие HTML-элементы. В приведенном выше примере одним из таких элементов является обычный текст, не являющийся пунктом списка, а играющий роль его заголовка.

Примечание

В некоторых учебниках по языку HTML встречается указание, что для задания заголовка списка следует применять тэг-контейнер <LH> (LH — List Header, заголовок списка). В настоящее время этот тег не распознается ни одним из распространенных браузеров и не входит в спецификацию HTML. Таким образом, его применение становится бессмысленным, хотя и не приведет к каким-либо ошибкам.

В тэге <UL> могут быть указаны два параметра: COMPACT и TYPE.

Параметр COMPACT записывается без значений и применяется для указания браузеру, что данный список следует выводить в компактном виде. Например, может быть уменьшен шрифт или расстояние между строчками списка и т. д.

Примечание

В настоящее время наличие параметра COMPACT в тэге <UL> никак не влияет на отображение списков ведущими браузерами. Поэтому применение данного параметра бессмысленно, тем более что его употребление не рекомендуется спецификацией HTML 4.0.

Параметр TYPE может принимать следующие значения: disc, circle и square. Этот параметр используется для принудительного задания вида маркеров списка. Конкретный вид маркера будет зависеть от используемого браузера. Типичными вариантами отображения являются следующие:

TYPE = disc — маркеры отображаются закрашенными кружками; TYPE = circle — маркеры отображаются не закрашенными кружками; TYPE = square — маркеры отображаются закрашенными квадратиками. Пример записи: <UL TYPE = circle>.

Значением, используемым по умолчанию, является TYPE = disc. Для вложенных маркированных списков на первом уровне по умолчанию используется значение disc, на втором — circle, на третьем и далее — square. Именно так делается в последних версиях браузеров Netscape и Internet Explorer. Заметим, что иные браузеры могут иначе отображать маркеры. Например, в спецификации HTML 4.0 для вида маркера, отображаемого при значении TYPE = square, указывается незакрашенный квадратик (square outline).

Параметр TYPE с теми же значениями может употребляться для указания вида маркеров отдельных элементов списка. Для этого параметр TYPE с соответствующим значением разрешено указывать в тэге элемента списка <LI>.

Пример записи: <LI TYPE = circle>.

Примечание

Браузеры по-разному интерпретируют указание вида маркера для отдельного элемента списка. Браузер Netscape изменяет вид маркера для данного и всех последующих, пока не встретится очередное переопределение вида маркера. Браузер Internet Explorer изменяет вид маркера только для данного элемента.

Графические маркеры списка

В качестве маркеров списка можно использовать графические изображения, что широко применяется для создания привлекательных, красиво оформленных HTML-документов. На самом деле такая возможность не предоставляется непосредственно языком HTML, а реализуется несколько искусственно. Это вовсе не означает, что так делать не рекомендуется или предосудительно, а лишь означает, что здесь не будут применяться никакие специальные языковые конструкции HTML.

Чтобы понять идею, необходимо разобраться в механизме реализации списков на HTML-страницах. Оказывается, что тег списка <UL> (как, впрочем, и теги списков других типов, рассматриваемых ниже) выполняет единственную задачу — указывает браузеру, что вся информация, располагаемая после данного тега должна отображаться со сдвигом вправо (отступом) на некоторую величину. Теги <LI>, указывающие на отдельные элементы списка, обеспечивают вывод стандартных маркеров элементов списка.

Если же нам требуется построить список с графическими маркерами, то можно вообще обойтись без тегов <LI>. Достаточно будет перед каждым элементом списка вставить желаемое графическое изображение. Единственной задачей, которую нужно при этом решить, будет отделение элементов списка друг от друга. Для этого можно использовать теги абзаца <P> или принудительного перевода строки <BR>. Пример реализации списка с графическими маркерами, отображение которого представлено на рис. 2.2, показан ниже:

<HTML>

<HEAD>

<TITLE>Маркированный список</TITLE>

</HEAD>

<BODY>

<UL>

<B>Знаки зодиака:</B><BR>

    <IMG SRC="Green_ball.gif"> Овен<BR>

    <IMG SRC="Green_ball.gif"> Телец<BR>

    <IMG SRC="Green_ball.gif"> Близнeцы<BR>

    <IMG SRC="Green_ball.gif"> Paк<BR>

    <IMG SRC="Green_ball.gif"> Лeв<BR>

    <IMG SRC="Green_ball.gif"> Дева<BR>

    <IMG SRC="Green_ball.gif"> Весы<BR>

    <IMG SRC="Green_ball.gif"> Скорпион<BR>

    <IMG SRC="Green_ball.gif"> Cтpeлeц<BR>

    <IMG SRC="Green_ball.gif"> Козерог<BR>

    <IMG SRC="Green_ball.gif"> Водолей<BR>

    <IMG SRC="Green_ball.gif"> Рыбы

</UL>

</BODY>

</HTML>

02.gif

Рис. 2.2. Маркированный список с графическими маркерами

В приведенном примере в качестве маркера элементов списка используется графический файл Green_ball.gif. Заметим, что использование графики на HTML-страницах может значительно увеличить объем передаваемой информации. Однако в данном случае это увеличение крайне незначительно. Здесь для всех маркеров используется один и тот же файл,

который будет передан только один раз. Размеры файла, содержащего маленькое изображение, также крайне незначительны.

Примечание

Методы создания списков с графическими маркерами обсуждаются в свою очередь в главе 8.

Нумерованный список

Другим типом списков, реализованных в языке HTML, является нумерованный список. Иначе списки такого типа называют упорядоченными. Последнее название часто используется как формальный перевод названия соответствующего тега <OL>, с помощью которого и организуются списки такого типа в HTML-документах (OL — Ordered List, упорядоченный список).

Списки данного типа обычно представляют собой упорядоченную последовательность отдельных элементов. Отличием от маркированных списков является то, что в нумерованном списке перед каждым его элементом автоматически проставляется порядковый номер. Вид нумерации зависит от браузера и может задаваться параметрами тегов списка. В остальном реализация нумерованных списков во многом похожа на реализацию маркированных списков.

Тэги <OL> и <LI>

Для создания нумерованного списка следует использовать тэг-контейнер <OL> </OL>, внутри которого располагаются все элементы списка. Открывающий и закрывающий теги списка обеспечивают перевод строки до и после списка, отделяя таким образом список от основного содержимого документа.

Как и для маркированного списка, каждый элемент нумерованного списка должен начинаться тэгом <LI>.

Приведем пример HTML-документа, использующего нумерованный список, отображение которого браузером показано на рис. 2.3.

<HTML>

<HEAD>

<TITLE>Пример нумерованного списка</TITLE>

</HEAD>

<BODY>

<OL>

<B>Наиболее яркие звезды, видимые с Земли:</B>

    <LI>Сириус

    <LI>Канопус

    <LI>Арктур

    <LI>Альфа Центавра

    <LI>Вега

    <LI>Капелла

    <LI>Ригель

    <LI>Процион

    <LI>Ахернар

    <LI>Бета Центавра

    <LI>Ветельгейзе

    <LI>Альдебаран

    <BR>. . .

    <LI value=58>Мицар

    <BR>. . .

    <LI value=75>Пoляpнaя

</OL>

</BODY>

</HTML>

03.gif

Рис. 2.З. Нумерованный список

В тэге <OL> могут быть указаны следующие параметры: COMPACT, TYPE и START.

Параметр COMPACT имеет тот же смысл, что и у маркированных списков. Параметр TYPE используется для задания вида нумерации списка. Может принимать следующие значения:

TYPE = А — задает маркеры в виде прописных латинских букв;

TYPE = а — задает маркеры в виде строчных латинских букв;

TYPE = I — задает маркеры в виде больших римских цифр;

TYPE = i — задает маркеры в виде маленьких римских цифр;

TYPE = 1 — задает маркеры в виде арабских цифр.

По умолчанию всегда используется значение TYPE = 1, т. е. нумерация при помощи арабских цифр. Это касается и вложенных нумерованных списков. Здесь, в отличие от маркированных списков, браузеры по умолчанию не делают различной нумерацию на различных уровнях вложенности списков. Заметим, что после номера элемента списка всегда дополнительно выводится знак "точка".

Параметр TYPE с теми же значениями может употребляться для указания вила нумерации отдельных элементов списка. Для этого параметр TYPE с соответствующим значением разрешено указывать в тэге элемента списка <LI>.

Пример записи: <LI TYPE = A>.

Параметр START тега <OL> позволяет начать нумерацию списка не с единицы. В качестве значения параметра START всегда должно указываться натуральное число, вне зависимости от вида нумерации списка. Приведем пример:

<OL TYPE = A START=5>.

Такая запись определяет нумерацию списка с прописной латинской буквы "E". Для других видов нумерации запись START=5 задаст нумерацию, соответственно, с числа "5", римской цифры "V" и т. д.

Изменение вида нумерации списка и значений номеров допустимо производить и для любого элемента списка. Тег <LI> для нумерованных списков разрешает использовать параметры TYPE и VALUE. Параметр TYPE может принимать такие же значения, как и для тега <OL>.

Пример записи: <LI TYPE = A>.

Примечание

Браузеры по-разному интерпретируют указание вида нумерации для отдельного элемента списка. Браузер Netscape изменяет вид нумерации для данного элемента и всех последующих, пока не встретится очередное переопределение. Браузер Internet Explorer изменяет вид номера только для данного элемента.

Значение параметра VALUE тега <LI>- позволяет изменить номер данного элемента списка. При этом изменяется нумерация и всех последующих элементов. Типичным применением являются списки с пропуском некоторых  элементов. Пример такого списка был приведен выше (рис. 2.3). В нем дается упорядоченный список наиболее ярких звезд, в котором на 58 и 75 местах расположены звезды, хорошо видимые в наших широтах (Мицар — наиболее яркая звезда созвездия Большая Медведица, а Полярная звезда — Малой Медведицы).

Приведем еще один оригинальный пример использования нумерации различных видов. В приводимом ниже HTML-коде заданы три списка с различной нумерацией. Для удобства просмотра каждый из списков помещен в отдельную ячейку таблицы. Все три списка идентичны и различаются только видом нумерации: в первом столбце таблицы — арабские цифры, во втором — римские, а в третьем нумерация ведется латинскими буквами. Обратим внимание, что элементы списка пусты, т. е. после любого тега <LI> нет никаких данных. Пример такого рода можно использовать в качестве таблицы соответствия между записью чисел арабскими и римскими цифрами. Оказывается, что любой браузер, поддерживающий списки, можно использовать в качестве генератора такой таблицы (рис. 2.4), стоит лишь набрать приводимый HTML-код. Нумерация римскими цифрами правильно работает вплоть до значения 3999. Изучая правый столбец, можно понять, как выполняется нумерация латинскими буквами. По исчерпании однобуквенной нумерации (от А до Z) в качестве следующего номера берется первый двухбуквенный номер — АА и т. д.

<HTML>

<HEAD>

<TITLE>Использование различного типа нумерации в списках</TITLE>

</HEAD>

<BODY>

<TABLE BORDER=1 WIDTH=100% CELLPADDING=15>

<TR>

<TD>

    <OL>

    <LI><LI>

    <BR>. . .

    <LI VALUE=1991><LI><LI><LI><LI><LI><LI><LI><LI><LI><LI><LI><LI><LI>

    </OL>

    </TD>

    <TD>

    <OL TYPE=I>

    <LI><LI>

    <BR>. . .

    <LI VALUE=1991><LI><LI><LI><LI><LI><LI><LI><LI><LI><LI><LI><LI><LI>

    </OL> </TD>

    <TD>

    <OL TYPE=A>

    <LI><LI>

    <BR>. . .

    <LI VALUE=1991><LI><LI><LI><LI><LI><LI><LI><LI><LI><LI><LI><LI><LI>

    </OL>

    </TD>

</TR>

</TABLE>

</BODY>

</HTML>

04.gif

Рис. 2.4. Различные типы нумерации HTML-списков

Список определений

Списки определений, также называемые словарями определений специальных терминов, являются особенным видом списков. В отличие от других типов списков, каждый элемент списка определений всегда состоит из двух частей. В первой части элемента списка записывается определяемый термин, а во второй части — текст в форме словарной статьи, раскрывающий значение термина.

Списки определений задаются с помощью тэга-контейнера <DL> (Definition List). Внутри контейнера тэгом <DT> (Definition Term) помечается определяемый термин, а тэгом <DD> (Definition Description) — абзац с его определением. Для тегов <DT> и <DD> можно не записывать соответствующие закрывающие тэги.

В общем, список определений записывается следующим образом:

<DL>

<DT>Термин

<DD>Определение термина

</DL>

В тексте после тега <DT> не могут использоваться элементы уровня блока, такие как, например, теги абзаца <P> или заголовков <H1>—<H6>. Как правило, текст определяемого термина должен располагаться в одной строке. Текст, содержащий определение термина, выводится, начиная со следующей строки (или через строку для некоторых браузеров) после определения термина с отступом вправо. В информации, помещенной после тега <DD>, могут располагаться элементы уровня блока. Отсюда следует, в частности, что списки определений могут быть вложенными.

В тэге <DL> может быть указан параметр COMPACT, назначение которого аналогично другим спискам, описываемым выше.

Приведем пример HTML-документа, в котором использован список определений:

<HTML>

<HEAD>

<TITLE>Пример списка определений</TITLE>

</HEAD>

<BODY>

<DL>

<CENTER>

<H3>Классификация типичных темпераментов человека,<BR>основанная

на воззрениях Гиппократа</H3>

</CENTER>

    <DT>Флегматик

    <DD>Пассивный, очень трудоспособный, медленно приспосабливающийся;<BR>настроение устойчивое, мало поддается внешнему влиянию;<BR>вялость эмоциональных реакций и медлительность в волевой деятельности<BR><BR>

    <DT>Сангвиник

    <DD>Активный, энергичный, легко приспосабливающийся,-<BR>живость и подвижность эмоциональных реакций, быстрота и сила волевых проявлений<BR><BR>

    <DT>Холерик

    <DD>Активный, очень энергичный, настойчивый;<BR>порывистость и сила эмоциональных реакций, бурные волевые проявления<BR><BR>

    <DT>Меланхолик

    <DD>Пассивный, легко утомляющийся, тяжело приспосабливающийся,-<BR>слабость волевых проявлений и преобладание подавленного настроения, неуверенность в себе

</DL>

</BODY>

</HTML>

Отображение приведенного HTML-документа в браузере показано на рис. 2.5.

05.gif

Рис. 2.5. Список определений (напоминает группу статей в словаре)

Списки типа <DIR> и <MENU>

Списки типа <DIR> и <MENU> в настоящее время практически не используются, хотя их поддержка ведущими браузерами до сих пор обеспечивается. В спецификации HTML 4.0 оба этих типа списка отмечены как отмененные. Вместо них предлагается использовать маркированные списки, задаваемые тэгом <UL>.

Изначально списки этих типов задумывались как более компактные по сравнению с обычными маркированными списками. Согласно правилам записи элементов этих списков в них не разрешалось использовать блочные элементы, что означает невозможность реализации вложенности списков такого типа. Каждый элемент списка представлял собой одну строчку текста.

Для списков типа <DIR> планировалось ввести ограничение на«длину текста элемента списка (24 символа). Такое ограничение позволило бы выводить

списки типа <DIR> в виде, подобном выводу списка каталогов в операционных системах UNIX и MS-DOS при использовании ключа /W (в несколько колонок). Кроме этого, для элементов списков такого типа не отображались маркеры.

В настоящее время все эти замыслы не реализованы, поскольку дальнейшее употребление списков данных типов не рекомендуется. Современные версии браузеров отображают списки этих типов полностью аналогично спискам типа <UL>.

Вложенные списки

Бывают случаи, когда в элемент списка одного типа требуется включить целый список такого же типа или другого. При этом будут организованы многоуровневые или вложенные списки. В HTML допустимо произвольное вложение различных типов списков, однако при их организации следует проявлять аккуратность.

Ниже приводится HTML-код документа с вложенными списками, отображение которого показано на рис. 2.6. В этом примере в каждый элемент маркированного списка вложен свой нумерованный список.

<HTML>

<HEAD>

<TITLE>Пример вложенного списка</TITLE>

</HEAD>

<BODY>

<UL>

<B>Спутники некоторых планет</B>

<LI>Земпя

    <OL>

    <LI>Луна

    </OL>

<LI>Mapc

    <OL>

    <LI>Фобос

    <LI>Деймос

    </OL>

<LI>Уран

    <OL>

    <LI>Ариэль

    <LI>Умбриэль

    <LI>Титания

    <LI>Оберон

    <LI>Миранда

    </OL>

<LI>Нептун

    <OL>

    <LI>Тритон

    <LI>Нереида

    </OL>

</UL>

</BODY>

</HTML>

Примечание

Язык HTML не допускает автоматическую многоуровневую нумерацию списков, как это делают мощные текстовые редакторы.

06.gif

Рис. 2.6. Простейший пример вложенного списка

07.gif

Рис. 2.7. Пример многоуровневого списка в HTML-документе

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

Вверх страницы

← к предыдущей главе     к следующей главе →

К оглавлению

 Раздел: Учебники / Учебник по HTML


 
Популярные статьи