10 Списки

10.1 Введення в списки

Мова HTML пропонує авторам кілька механізмів створення списків інформації. У кожному списку повинен бути один або кілька елементів списків. Списки можуть містити:
  • Неупорядковану інформацію.
  • Впорядковану інформацію.
  • Визначення.

Попередній список, наприклад, не впорядкований, він створений за допомогою елемента UL :

  <UL>
 <LI> невпорядкованість інформацію. 
 <LI> Впорядковану інформацію. 
 <LI> Визначення. 
 </ UL>

Упорядкований список, який створюється за допомогою елемента OL , може містити інформацію, в якій важливий порядок, наприклад, рецепт:

  1. Ретельно змішати сухі інгредієнти.
  2. Влити рідину.
  3. Змішувати 10 хвилин.
  4. Випікати протягом години при температурі 300 градусів.

Списки визначень, що створюються за допомогою елемента DL , можуть містити ряд пар термін / визначення (хоча списки визначень можуть мати і інші застосування). Наприклад, список визначень можна використовувати в рекламі вироби:

Низька ціна
Нова модель цього виробу істотно дешевше попередньої!
простіше робота
Ми змінили виріб, так що з ним тепер легко працювати!
Безпечно для дітей
Ви можете залишити своїх дітей в кімнаті, і вони не заподіє їм шкоди (не гарантовано).

Мовою HTML він визначається наступним чином:

  <DL>
 <DT> <STRONG> Низька ціна </ STRONG>
 <DD> Нова модель цього виробу істотно дешевше попередньої!
 <DT> <STRONG> Простіше робота </ STRONG>
 <DD> Ми змінили виріб, так що з ним тепер легко працювати!
 <DT> <STRONG> Чи безпечно для дітей </ STRONG>
 <DD> Ви можете залишити своїх дітей в кімнаті, і вони не заподіє їм шкоди (не гарантовано).
 </ DL>

Списки можуть бути вкладеними, різні типи списків можна використовувати разом, як в наступному прикладі, де список визначень містить невпорядкований список (інгредієнти) і упорядкований список (процедуру):

Складові:
  • 100 г борошна
  • 10 г цукру
  • 1 стакан води
  • 2 яйця
  • сіль перець
процедура:
  1. Ретельно змішайте сухі інгредієнти.
  2. Влийте рідкі інгредієнти.
  3. Змішуйте 10 хвилин.
  4. Випікайте протягом години при температурі 300 градусів.
Примітки:
Можна додати родзинки.

Точне уявлення трьох типів списків залежить від агента користувача. Не варто використовувати списки для створення відступів в тексті. Це робиться за допомогою таблиць стилів.

10.2 Неупорядковані списки ( UL ), впорядковані списки ( OL ) і елементи списків ( LI )

  <! ELEMENT UL - - (LI) + - невпорядкований список ->
 <! ATTLIST UL
  % attrs;
  - % Coreattrs , % i18n , % events -
  >
 <! ELEMENT OL - - (LI) + - впорядкований список ->
 <! ATTLIST OL
  % attrs;
  - % Coreattrs , % i18n , % events -
  >

Початковий тег: обов'язковий, Кінцевий тег: обов'язковий

  <! ELEMENT LI - O ( % flow; ) * - елемент списку ->
 <! ATTLIST LI
  % attrs;
  - % Coreattrs , % i18n , % events -
  >

Початковий тег: обов'язковий, Кінцевий тег: не обов'язково

визначення атрибутів

type   =   інформація про стилі [CI]
Небажаний. Цей атрибут встановлює стиль елемента списку. Наявні в даний час значення призначені для візуальних агентів користувачів. Можливі значення описані нижче (включаючи інформацію про регістрі).
start = число [CN]
Небажаний. Тільки для OL . Цей атрибут задає початковий номер першого елемента в упорядкованому списку. За замовчуванням початковий номер - "1". Пам'ятайте, що, хоча значенням цього атрибуту є ціле число, відповідна позначка може бути нецифрові. Якщо в якості стилю обрані латинські літери верхнього регістру (A, B, C, ...), start = 3 означає "C". Якщо в якості стилю обрані римські цифри нижнього регістра, start = 3 означає "iii" і т.д.
value = число [CN]
Нежелетельно. Тільки для LI . Цей атрибут встановлює номер поточного елемента списку. Пам'ятайте, що, хоча значенням атрибута є ціле число, відповідна позначка може бути нечислових (див. Атрибут start ).
compact [CI]
Небажаний. Якщо цей логічний атрибут встановлений, він повідомляє візуальним агентам користувачів про те, що генерувати список потрібно більш компактно. Інтерпретація цього атрибута залежить від агента користувача.

Впорядковані і невпорядковані списки генеруються однаково за винятком того, що візуальні агенти користувачів нумерують впорядковані списки. Агенти користувачів можуть представляти ці номери декількома способами. Елементи невпорядкованого списку не нумеруються.

Обидва ці типи списків складаються з послідовностей елементів списків, які визначаються елементом LI (кінцевий тег якого можна опустити).

У цьому прикладі показана загальна структура списку.

  <UL>
  <LI> ... перший елемент списку ... <LI> ... другий елемент списку ...

  ...
 </ UL>

Списки можуть бути вкладеними:

ПРИКЛАД небажане використання:

  <UL>
  <LI> ... Рівень один, номер один ... <OL> 
  <LI> ... Рівень два, номер один ... <LI> ... Рівень два, номер два ... <OL start = "10"> 
  <LI> ... Рівень три, номер один ... </ OL> 
  <LI> ... Рівень два, номер три ... </ OL> 
  <LI> ... Рівень один, номер два ...

 </ UL>

Інформація про порядок номерів. У упорядкованих списках неможливо продовжувати нумерацію автоматично з попереднього списку або прибрати нумерацію для деяких елементів. Однак автори можуть пропустити кілька елементів списку, встановивши для них атрибут value. Нумерація для наступних елементів списку триває з нового значення. наприклад:

 <Ol>
 <Li value = "30"> елемент списку номер 30.
 <Li value = "40"> елемент списку номер 40.
 <Li> елемент списку номер 41.
 </ Ol>

10.3 Списки визначень : елементи DL , DT і DD

  <! - Списки визначень - DT - термін, DD - його визначення ->
 <! ELEMENT DL - - (DT | DD) + - список визначень ->
 <! ATTLIST DL
  % attrs;
  - % Coreattrs , % i18n , % events -
  >

Початковий тег: обов'язковий, Кінцевий тег: обов'язковий

  <! ELEMENT DT - O ( % inline; ) * - термін ->
 <! ELEMENT DD - O ( % flow; ) * - визначення ->
 <! ATTLIST (DT | DD)
  % attrs;
  - % Coreattrs , % i18n , % events -
  >

Початкові тег: обов'язковий, Кінцевий тег: не обов'язково

Списки визначень незначно відрізняються від інших типів списків - тим, що елементи складаються з двох частин: терміна і визначення. Термін позначається за допомогою елемента DT і може мати тільки вбудоване вміст. Опис вказується за допомогою елемента DD , які мають вміст рівня блоку.

приклад:

 
 <DL>
  <DT> Dweeb
  <DD> young excitable person who may mature
  into a <EM> Nerd </ EM> or <EM> Geek </ EM>

  <DT> Cracker
  <DD> hacker on the Internet

  <DT> Nerd
  <DD> male so into the Net that he forgets
  his wife's birthday
 </ DL>

Ось приклад з кількома термінами і визначеннями:

 <DL>
  <DT> Center
  <DT> Centre
  <DD> A point equidistant from all points
  on the surface of a sphere.
  <DD> In some field sports, the player who
  holds the middle position on the field, court,
  or forward line.
 </ DL>

Іншим застосуванням елемента DL , наприклад, може бути розмітка діалогів, де кожен елемент DT означає говорить, а в кожному елементі DD містяться його слова.

10.3.1 Візуальне відображення списків

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

Візуальні агенти користувачів зазвичай зрушують вкладені списки відповідно до рівня вкладеності.

Для елементів OL і UL атрибут type визначає параметри генерації для візуальних агентів користувачів.

Для елемента UL можливими значеннями атрибута type є disc, square і circle. Значення, що використовується за умовчанням, залежить від рівня вкладеності поточного списку. Ці значення не враховують регістр.

Подання кожного значення залежить від агента користувача. Агенти користувачів повинні намагатися представляти "disc" у вигляді невеликого заповненого гуртка, "circle" - у вигляді кола, а "square" у вигляді невеликого квадрата.

Графічні агенти користувач можуть генерувати їх як:

A possible rendering of a disc для значення "disc"
A possible rendering of a circle для значення "circle"
A possible rendering of a square для значення "square"

Для елемента OL можливі значення атрибута type наведені в наступній таблиці (вони враховують регістр):

Type стиль нумерації
1 арабські цифри 1, 2, 3, ...
a літери нижнього регістру a, b, c, ...
A літери верхнього регістру A, B, C, ...
i римські цифри в нижньому регістрі i, ii, iii, ...
I римські цифри у верхньому регістрі I, II, III, ...

Пам'ятайте, що використання атрибута type небажано , і стилі списків повинні визначатися за допомогою таблиць стилів.

Наприклад, за допомогою CSS можна вказати, що стиль нумерації для елементів списку в нумерованому списку - римські цифри нижнього регістра. У наведеному нижче прикладі кожен елемент OL , що належить класу "withroman", позначається римською цифрою.

  <STYLE type = "text / css">
 OL.withroman {list-style-type: lower-roman}
 </ STYLE>
 <BODY>
 <OL class = "withroman">
 <LI> Крок один ... 
 <LI> Крок два ...
 </ OL>
 </ BODY>

Генерація списку визначень також залежить від агента користувача. Наприклад, список:

 <DL>
  <DT> Dweeb
  <DD> young excitable person who may mature
  into a <EM> Nerd </ EM> or <EM> Geek </ EM>

  <DT> Cracker
  <DD> hacker on the Internet

  <DT> Nerd
  <DD> male so into the Net that he forgets
  his wife's birthday
 </ DL>

може генеруватися в такий спосіб:

  Dweeb
  young excitable person who may mature into a Nerd or Geek
 Cracker
  hacker on the Internet
 Nerd
  male so into the Net that he forgets his wife's birthday

10.4 Елементи DIR і MENU

Використання елементів DIR і MENU небажано .

Формальне визначення см. В Перехідній DTD .

Елемент DIR призначався для створення багатосторінкових списків каталогів. Елемент MENU призначався для використання в списках меню, що складаються з одного стовпчика. Обидва ці елементи мають ту ж структуру, що і елемент UL , розрізняючи лише при генерації. На практиці агенти користувачів генерують списки DIR або MENU точно так же, як список UL .

Настійно рекомендується використовувати замість цих елементів елемент UL .