Списки.

Язык HTML обладает возможностями предоставления информации в виде списков. Список служит для добавления структуры в документ. Он позволяет в более удобном и понятном виде представить информацию, такую как, например: список покупок, пошаговое описание каких-либо действий, толковый словарь и т.п.

В HTML различают:

  • неупорядоченные списки (список покупок);
  • упорядоченные списки (пошаговое описание, в котором каждый шаг пронумерован);
  • список определений (толковый словарь).

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

4.1. Неупорядоченные и упорядоченные списки и их элементы.

Неупорядоченные списки создаются элементом <ul>, упорядоченные списки — элементом <ol>. Списки обоих типов состоят из последовательности элементов списка, которые задаются элементом <li>. Элемент <li>, a точнее его содержание (например, название покупки), является обособленной частью списка. Неупорядоченные списки отображаются браузерами как маркированные, а упорядоченные — как пронумерованные.

4.2. Неупорядоченные списки. Элемент <ul>.

Задание начального и конечного тегов элемента <ul> является обязательным.

Атрибуты (все необязательные):

  • type — задает информацию о виде используемых маркеров. Может принимать следующие значения:
    • circle — маркеры отображаются в виде незакрашенных кружков;
    • disc — маркеры отображаются в виде закрашенных кружков;
    • square — маркеры отображаются в виде закрашенных квадратов.

    Примечание.

    Если не задать значение атрибуту type, браузер будет использовать маркеры по своему усмотрению (обычно закрашенные кружки).

  • compact — присутствие этого атрибута указывает браузеру на то, что данный список он должен отображать более компактно (например, уменьшив межстроковый интервал).
  • id, class — идентификаторы в пределах документа;
  • lang, dir — информация о языке и направленности текста;
  • title — заголовок элемента (выводится браузером в качестве комментария при наведении курсора на содержимое элемента);
  • style — встроенная информация о стиле;
  • onclick, ondblclick, onmousedown, omnouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup — внутренние события.

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

Каждый элемент списка (это относится и к упорядоченному списку) представляет собой HTML-элемент <li>. Открывающий тег элемента <li> обязателен, закрывающий может быть опущен. В этом случае элементом списка считается весь текст, расположенный до следующего открывающего тега <li> или до закрывающего тега <ul> (<ol>).

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Пример задания неупорядоченного списка
</title>
</head>
<body>
<p>
Николай Степанович Гумилев — один из величайших поэтов
"Серебрянного века". Им было создано новое поэтическое
направление — акмеизм.
</p>
<h4>Стихотворения из цикла "Романтические цветы"</h4>
<ul>
  <li>Мечты</li>
  <li>Перчатка</li>
  <li>Заклинание</li>
  <li>Озеро Чад</li>
  <li>Сады души</li>
  <li>Основатели</li>
</ul>
<h4>Стихотворения из цикла "Жемчуга"</h4>
<ul>
  <li>Потомки Каина</li>
  <li>Камень</li>
  <li>Старый конквистадор</li>
  <li>Варвары</li>
</ul>
</body>
</html>
Рис. 4.2  Пример задания неупорядоченного списка.

Для элемента <li> определены такие же стандартные атрибуты, что и для элемента <ul>, и еще два необязательных атрибута value и type. Эти атрибуты используются при работе с упорядоченными списками и будут рассмотрены позже. Визуально функции элемента <li> сводятся к отображению маркера в неупорядоченных списках или нумерации в упорядоченных списках.

Допускается использование вложенных неупорядоченных списков (рис. ). При отображении вложенных неупорядоченных списков браузеры по умолчанию используют различную маркировку списков разного уровня.

Пример:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Пример использования вложенных списков
</title>
<style>
.city { color: darkred }
.club { color: darkgreen }
.player {color: darkblue }
</style>
</head>
<body>
<h3 align="center">
Российские футбольные клубы и их лучшие игроки
</h2>
<ul class="city">
<li>
  САНКТ-ПЕТЕРБУРГ
  <ul class="club">
  <li>
    "Зенит"
    <ul class="player">
      <li>А. Панов</li>
      <li>А. Куртиян</li>
      <li>Р. Березовский</li>
      <li>С. Оганисян</li>
    </ul>
  </li>
  </ul>
</li>
<li>
  МОСКВА
  <ul class="club">
  <li>
    "Спартак"
    <ul class="player">
      <li>Е. Титов</li>
      <li>В. Ананко</li>
      <li>Робсон</li>
      <li>А. Тихонов</li>
    </ul>
  </li>
  <li>
    "Локомотив"
    <ul class="player">
      <li>А. Чугайнов</li>
      <li>З. Джанашия</li>
      <li>А. Булыкин</li>
      <li>Е. Харлачев</li>
    </ul>
  </li>
  <li>
    "ЦСКА"
    <ul class="player">
      <li>B.Кулик</li>
      <li>В.Хомуха</li>
      <li>С.Семак</li>
      <li>E.Варламов</li>
    </ul>
  </li>
  </ul>
</li>
</ul>
</body>
</html>
Рис. 4.3  Пример использования вложенных списков.

С помощью атрибута type элемента <ul> можно непосредственно указывать вид маркера. Например (рис. 4.4):

Пример:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Пример использования атрибута type
</title>
</head>
<body>
<ul type="circle">
  <li>Mapкep — незакрашенный кружок</li>
  <li>Маркер — незакрашенный кружок</li>
  <li>Маркер — незакрашенный кружок</li>
</ul>
<ul type="square">
  <li>Маркер — закрашенный квадратик</li>
  <li>Маркер — закрашенный квадратик</li>
  <li>Маркер — закрашенный квадратик</li>
</ul>
<ul>
  <li>Маркер — закрашенный кружок</li>
  <li>Маркер — закрашенный кружок</li>
  <li>Маркер — закрашенный кружок</li>
</ul>
</body>
</html>
Рис. 4.4  Пример использования атрибута type для задания внешнего вида маркеров неупорядоченного списка.

Для повышения привлекательности документа можно создавать списки с нестандартными маркерами, например: звездочками, шариками и т.п. Для этого вместо элемента <ul> для каждого элемента списка используются элемент img — вставки изображения маркера и элемент br — перехода на новую строку (рис. 4.5).

Пример:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Пример списка с нестандартными маркерами
</title>
</head>
<body>
<h2 align="center">Солнечная система</h2>
<strong>Солнечная система</strong> состоит из центрального светила —
Солнца и девяти планет, обращающихся вокруг него, их спутников,
множества малых планет, комет и межпланетной пыли.
<ul>
  <h3>Список планет Солнечной системы</h3>
  <img src="square.gif">Меркурий<br>
  <img src="square.gif">Beнepa<br>
  <img src="square.gif">Земля<br>
  <img src="square.gif">Марс<br>
  <img src="square.gif">Юпитер<br>
  <img src="square.gif">Сатурн<br>
  <img src="square.gif">Уран<br>
  <img src="square.gif">Нептун<br>
  <img src="square.gif">Плутон<br>
</ul>
</body>
</html>
Рис. 4.5  Пример списка с авторскими маркерами в виде изображений.

4.3. Упорядоченные списки. Элемент <ol>.

С помощью элемента <ol> в HTML-документах задаются упорядоченные (пронумерованные) списки. Так же, как и в случае неупорядоченных списков, элементом упорядоченного списка является элемент <li> со своим содержимым.

Указание начального и конечного тегов элементов <ol> является обязательным.

Атрибуты (все необязательные):

  • tуре — указывает вид нумерации элементов упорядоченого списка. Может принимать следующие значения:
    • tуре = 1 — задает нумерацию арабскими цифрами (используется браузерами по умолчанию);
    • tуре = A — задает нумерацию прописными латинскими буквами;
    • tуре = a — задает нумерацию строчными латинскими буквами;
    • tуре = I — задает нумерацию большими римскими цифрами;
    • tуре = i — задает нумерацию маленькими римскими цифрами.

    Примечание.

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

  • start — задает начальный номер первого элемента в упорядоченном списке. В качестве значения может принимать только натуральное число, независимо от вида нумерации, т.к. задает начальный номер, а не начальное значение в нумерации. Например, номер значения «C» в нумерации прописными латинскими буквами равен 3. По умолчанию значение атрибута start равно 1.
  • id, class — идентификаторы в пределах документа;
  • lang, dir — информация о языке и направленности текста;
  • title — заголовок элемента (выводится браузером в качестве комментария при наведении курсора на содержимое элемента);
  • style — встроенная информация о стиле;
  • onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup — внутренние события.

Тип нумерации и значение номера элемента можно менять непосредственно при задании элемента списка <li>. В этом случае используется вышеописанный атрибут type и атрибут value, задаваемые для элемента <li>. Задание значения атрибута value для элемента списка <li> позволяет изменить номер элемента списка. При этом изменится нумерация всех последующих элементов списка. Принимает в качестве значений натуральные числа, как и атрибут start элемента <ol>.

Пример:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Пример задания упорядоченного списка
</title>
</head>
<body>
<h3 align="center">Лауреаты Нобелевской премии по физике</h2>
<ol>
  <li>БАРДИН (Bardeen), Джон</li>
  <li>БАРКЛА (Barkla), Чарлз Главер</li>
  <li>БЕККЕРЕЛЬ (Becquerel), Анри</li>
  <li>БОР (Bohr), Нильс</li>
  <li>
      Б0РН (Born), Макс
      <br>..........
  </li>
  <li value=50>ШТАРК (Stark), Йоханнес</li>
  <li>ЭЙНШТЕЙН (Einstein), Альберт</li>
</ol>
</body>
</html>
Рис. 4.6  Пример документа с упорядоченным списком.

Аналогично неупорядоченным спискам для вложенных упорядоченных списков автоматически происходит смена вида нумерации (рис. 4.7). Но здесь есть небольшой нюанс. Обратите внимание на строку <ol type=I>. Если мы зададим тип нумерации по умолчанию (<ol>), то внешний и вложенные списки будут пронумерованы арабскими цифрами — как уже говорилось ранее, при использовании вложенных упорядоченных списков браузеры по умолчанию не делают разной нумерации списков различного уровня.

Пример:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Пример вложенных упорядоченных списков
</title>
</head>
<body>
<h2 align="center">Hoбeлeвcкиe лауреаты</h2>
<ol type=I>
<li>
  <strong>Премия по химии</strong>
  <ol>
    <li>АРРЕНИУС (Arrhenius), Сванте</li>
    <li>ACTOH (Aston), Фрэнсис Уильям</li>
    <li>
        БЕРГИУС (Bergius), Фридрих
        <br>..........
    </li>
    <li value=30>ФИШЕР (Fischer), Эмиль</li>
    <li>ЭЙЛЕР-ХЕЛЬПИН (Euler-Chelpin), Ханс фон</li>
    <li>ЮРИ (Urey), Гарольд К.</li>
  </ol>
</li>
<li>
  <strong>Премия по литературе</strong>
  <ol>
    <li>БЕНАВЕНТЕ-И-МАРТИНЕС (Benavente у Martinez), Хасинто</li>
    <li>BEPГCOH (Bergson), Анри</li>
    <li>
        BЬEPHCOH (Bjernson), Бьеристерне
        <br>..........
    </li>
    <li value=30>ШПИTTEЛEP (Spitteler), Карл</li>
    <li>ЭЙKEH (Eucken), Рудольф</li>
    <li>ЭЧЕГАРАЙ (Echegaray), Xoce</li>
  </ol>
</li>
<li>
  <strong>Премия мира</strong>
  <ol>
    <li>ACCEP (Asser), Тобиас</li>
    <li>APHOЛЬДCOH (Arnoldson), Клас</li>
    <li>
        БAЙEP (Bajer), Фредрик
        <br>..........
    </li>
    <li value=25>САХАРОВ, Андрей</li>
    <li>ФPИД (Fried), Альфред</li>
  </ol>
</li>
</ol>
</body>
</html>
Рис. 4.7  Документ с вложенными упорядоченными списками.

В этом примере также проиллюстрировано использование атрибута value элемента <li>. С ним связана маленькая тонкость: если используется нумерация не арабскими цифрами, а, например, прописными латинскими буквами, то в качестве значения атрибута value по-прежнему указывается арабское число, соответствующее порядковому номеру буквы в алфавите.

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

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

  • определяемого термина, задаваемого с помощью элемента <dt> (Definition Term);
  • текста с его определением, задаваемого с помощью элемента <dd> (Definition Description).

Сам список определений заключается в содержимом элемента-контейнера <dl> (Definition List).

Атрибуты:

  • id, class — идентификаторы в пределах документа;
  • lang, dir — информация о языке и направленности текста;
  • title — заголовок элемента (выводится браузером в качестве комментария при наведении курсора на содержимое элемента);
  • style — встроенная информация о стиле;
  • onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydovm, onkeyup — внутренние события.

Для элемента <dl> допустимо задание атрибута compact, дающего указание браузеру отображать список более компактно.

Задание начального и конечного тега для элемента <dl> является обязательным. Для элементов <dt> и <dd> начальный тег обязателен, а конечный тег можно опускать.

Недопустимо использование элементов уровня блока (например, элементы заголовков h1...h6 или элемент абзаца <p>) в содержимом элемента <dt>. В содержимом элемента <dd> их использование разрешается. Это, кроме всего прочего, говорит о возможности создания вложенных списков определений.

Пример:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Пример списка определений
</title>
</head>
<body>
<h2 align="center">Математический справочник</h2>
<dl>
  <dt><strong>Делитель нуля</strong></dt>
  <dd>
  Это ненулевой элемент кольца или подгруппы с нулем, произведение
  которого на некоторый ненулевой элемент равно нулю. В некоммутативном
  случае различают левые и правые делители нуля.
  </dd>
  <dt><strong>Делийская задача</strong></dt>
  <dd>
  Задача об удвоении куба. Заключается в построении циркулем и линейкой
  стророны куба, объем которого вдвое больше объема данного куба.
  Название "Делийская задача" связано с преданием, по которому жители
  острова Делос, чтобы избежать чумы, должны были исполнить повеление
  дельфийского оракула удвоить объем жертвенника, не изменяя при этом
  его кубической формы.
  </dd>
  <dt><strong>Дискретная математика</strong></dt>
  <dd>
  Область математики, занимающаяся изучением свойств дискретных
  структур, которые возникают как внутри математики, так и в ее
  приложениях. К числу таких структур могут быть отнесены, например,
  конечные группы, конечные графы, а также некоторые матеметнческие
  модели преобразователей информации, конечные автоматы, машины
  Тьюринга и т.п.
  </dd>
</dl>
</body>
</html>
Рис. 4.8  Пример списка определений.

4.5. Комбинирование различных списков.

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

Пример:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
Пример вложения друг в друга списков различного типа
</title>
<style type="text/css">
body { font-weight: bold }
.chapter { color: darkred }
.paragraph { color: darkgreen }
dt { color: darkblue }
dd { font-style: italic; color: darkblue }
</style>
</head>
<body>
<h2 align="center">
Содержание учебника по истории раннего средневековья.
</h2>
<ul>
<li class="chapter">
  Глава 1. Западная и центральная Европа в VI-XI веках.
  <ol>
    <li class="paragraph">
      Древние Германцы и Римская империя.
    </li>
    <li class="paragraph">
      Франкское королевство.
      <dl>
        <dt>Франкское королевство</dt>
        <dd>
        Oно возникло в конце V века на части территории бывшей Римской
        империи при завоевании франками во главе с Хлодвигом Галлии.
        </dd>
      </dl>
      ..........
    </li>
    <li value=7 class="paragraph">
      Культура Западной и Центральной Европы.
    </li>
    <li class="paragraph">
      Образование славянских государств.
    </li>
  </ol>
</li>
<li class="chapter">
  Глава 2. Византийская империя в VI-XI веках.
  <ol>
    <li class="paragraph">
      Византия при Юстиниане.
      <dl>
        <dt>Юстиниан I</dt>
        <dd>
        3авоевал Северную Африку, Сицилию, Италию, часть Испании. Провел
        кодификацию римского права, стимулировал большое строительство.
        </dd>
      </dl>
    </li>
    <li class="paragraph">
      Культура Византии.
    </li>
  </ol>
</li>
<li class="chapter">
  Приложения.
  <ol type=A>
    <li class="paragraph">
      Краткая биография Карла Великого.
    </li>
    <li class="paragraph">
      Карта Франкского королевства в X веке.
      <br>..........
    </li>
    <li value=5 class="paragraph">
      Хронология развития Византийского государства
    </li>
  </ol>
</li>
</ul>
</body>
</html>
Рис. 4.9  Пример вложения друг в друга списков различного типа.