Вложенные списки с автоматической нумерацией. Списки в HTML - маркированный список - нумерованный список - список определений - вложенные списки в HTML

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

    , а каждый пункт списка начинается с тега
  • , как показано ниже.

    • Первый пункт
    • Второй пункт
    • Третий пункт

    В списке непременно должен присутствовать закрывающий тег

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

В примере 11.1 приведен код HTML для добавления маркированного списка на веб-странице.

Пример 11.1. Создание маркированного списка

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


  • Чебурашка
  • Крокодил Гена
  • Шапокляк
  • Крыса Лариса

Результат данного примера показан на рис. 11.1.

Рис. 11.1. Вид маркированного списка

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

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

    . Допустимые значения приведены в табл. 11.1

    Табл. 11.1. Стили маркеров списка
    Тип списка Код HTML Пример
    Список с маркерами в виде круга

    • Первый
    • Второй
    • Третий
    Список с маркерами в виде окружности

    • Первый
    • Второй
    • Третий
    Список с квадратными маркерами

    • Первый
    • Второй
    • Третий

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

    Создание списка с квадратными маркерами показано в примере 11.2.

    Пример 11.2. Вид маркеров

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

    Изменение убеждений

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

    Результат данного примера показан на рис. 11.2.

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

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

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

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

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

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

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

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

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

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

          Тэги

            и <LI >

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


            .

            Каждый элемент списка должен начинаться тэгом

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

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

            Пример маркированного списка

              Знаки зодиака:

              • Овен

              • Телец

              • Близнецы

              • Рак

              • Лев

              • Дева

              • Весы

              • Скорпион

              • Стрелец

              • К озерог

              • Водолей

              • Рыбы

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

            Заметим, что кроме элементов списка, отмечаемых тэгом

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

            Примечание

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

            В тэге

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

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

              Примечание

              В настоящее время наличие параметра COMPACT в тэге

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

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

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

                  .

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

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

                • .

                  Пример записи:

                • .

                  Примечание

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

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

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

                  Чтобы понять идею, необходимо разобраться в механизме реализации списков на HTML-страницах. Оказывается, что тег списка

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

                    Если же нам требуется построить список с графическими маркерами, то можно вообще обойтись без тегов

                  • . Достаточно будет перед каждым элементом списка вставить желаемое графическое изображение. Единственной задачей, которую нужно при этом решить, будет отделение элементов списка друг от друга. Для этого можно использовать теги абзаца

                    Или принудительного перевода строки
                    . Пример реализации списка с графическими маркерами, отображение которого представлено на рис. 2.2, показан ниже:

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

                      Знаки зодиака:

                        Овен

                        Телец

                        Близнeцы

                        Paк

                        Лeв

                        Дева

                        Весы

                        Скорпион

                        Cтpeлeц

                        Козерог

                        Водолей

                        Рыбы

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

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

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

                    Примечание

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

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

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

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

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

                      Тэги

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

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

                      2. .

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

                        Пример нумерованного списка

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

                          • Сириус

                          • К анопус

                          • Арктур

                          • Альфа Центавра

                          • Вега

                          • К апелла

                          • Ригель

                          • Процион

                          • Ахернар

                          • Бета Центавра

                          • Ветельгейзе

                          • Альдебаран


                            . . .

                          • Мицар


                            . . .

                          • Пoляpнaя

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

                        В тэге

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

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

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

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

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

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

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

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

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

                        1. .

                          Пример записи:

                        2. .

                          Параметр START тега

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

                              .

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

                              Изменение вида нумерации списка и значений номеров допустимо производи ть и для любого элемента списка. Тег

                            1. для нумерованных списков разрешает использовать параметры TYPE и VALUE. Параметр TYPE может прини мать такие же значения, как и для тега
                                .

                                П ример записи:

                              1. .

                                Примечание

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

                                З начение параметра VALUE тега

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

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

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

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


                                  1. . . .


                                1. . . .


                                1. . . .

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

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

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

                                Списки определений задаются с помощью тэга-контейнера

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

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

                                Термин

                                Определение термина

                                В тексте после тега

                                не могут использоваться элементы уровня блока, такие как, например, теги абзаца

                                Или заголовков

                                -

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

                                В тэге

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

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

                                Пример списка определений

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

                                на воззрениях Гиппократа

                                  Флегматик

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

                                  Сангвиник

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

                                  Холерик

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

                                  Меланхолик

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

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

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

                                Списки типа

                                и

                                Списки типа

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

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

                                  Для списков типа

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

                                  списки типа

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

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

                                    .

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

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

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

                                    Пример вложенного списка

                                      Спутники некоторых планет

                                    • Земпя

                                        1. Луна

                                    • Mapc

                                        1. Фобос

                                        2. Деймос

                                    • Уран

                                        1. Ариэль

                                        2. Умбриэль

                                        3. Титания

                                        4. Оберон

                                        5. Миранда

                                    • Нептун

                                        1. Тритон

                                        2. Нереида

                                      Списки определений соединяют определенные объекты и их определения в списке. Например, если вы хотите добавить определения к объектам в списке покупок, можно сделать это следующим образом:

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

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

                                      Можно ассоциировать более одного термина с одним определением , или наоборот. Например, термин "кофе" может иметь несколько значений, и можно показать их одно за другим:

                                      кофе напиток, приготовленный из жареных, молотых кофейных зерен чашка кофе встреча, во время которой пьют кофе цвет от среднего до темно коричневого

                                      Альтернативно можно иметь более одного термина с одним определением . Это используется, чтобы показать вариации термина, которые все имеют одно значение:

                                      содовая шипучка газировка кола Сладкий, насыщенный углекислым газом, напиток

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

                                      Поэтому списки определений используют одну пару элементов

                                      , охватывающую группы тегов
                                      и
                                      . Необходимо располагать парами как минимум одну группу тегов
                                      с одной группой
                                      ; теги
                                      должны всегда быть первыми по порядку.

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

                                      Термин
                                      Определение термина
                                      Термин
                                      Определение термина
                                      Термин
                                      Определение термина

                                      Который выводится следующим образом:

                                      Термин Определение термина Термин Определение термина Термин Определение термина

                                      В этом примере мы соединяем более одного термина с определением и наоборот:

                                      Термин
                                      Определение термина
                                      Термин
                                      Термин
                                      Определение которое применяется к обоим предыдущим терминам
                                      Термин, который может иметь оба следующие определения
                                      Одно определение термина
                                      Другое определение термина

                                      Что будет представлено следующим образом:

                                      Термин Определение термина Термин Термин Определение которое применяется к обоим предыдущим терминам Термин, который может иметь оба следующие определения Одно определение термина Другое определение термина

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

                                      Выбор типа списка

                                      При принятии решения об использовании определенного типа списка, обычно можно решить это, задавая два простых вопроса:

                                      1. Определяются термины (или соединяются другие пары имя/значение)?
                                        • Если да, используйте список определений .
                                        • Если нет, не используйте список определений - перейдите к следующему вопросу.
                                      2. Важен ли порядок элементов списка?
                                        • Если да, используйте упорядоченный список.
                                        • Если нет, используйте неупорядоченный список.

                                      Различие между списками HTML и текстом

                                      Можно задаться вопросом, в чем различие между списком HTML и каким-то текстом с маркерами или числами, написанными вручную. Существует несколько преимуществ использования списка HTML :

                                      • Если потребуется изменить порядок элементов списка в упорядоченном списке, то вы просто перемещаете их в коде HTML . Если числа будут написаны вручную, то придется все просмотреть и изменить число каждого элемента, чтобы исправить порядок - что достаточно скучно, по крайней мере!
                                      • Использование списка HTML позволяет правильно оформить стиль списка. Если используется просто большой текст, то окажется значительно труднее оформить стиль отдельных элементов каким-либо более-менее полезным образом.
                                      • Использование списка HTML создает для контента подходящую семантическую структуру, а не просто "спискообразный" визуальный эффект. Это имеет важные преимущества, так как позволяет считывателям экрана сообщить пользователям с недостатками зрения, что они читают список, а не просто прочитать путаную смесь текста и чисел.

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

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

                                      Элемент списка может содержать другой целый список - он называется "вложенным" списком. Это может быть полезно для таких вещей как таблица контента, такой как в начале лекции:

                                      1. Глава один 1. Раздел один 2. Раздел два 3. Раздел три 2. Глава два 3. Глава три

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

                                      1. Глава один
                                        1. Раздел один
                                        2. Раздел два
                                        3. Раздел три
                                      2. Глава два
                                      3. Глава три

                                      Отметим, что вложенный список начинается после элемента

                                    • и текста, содержащего список элемента ("Глава один"); а заканчивается перед элементом
                                    • , содержащего список элемента. Вложенные списки часто формируют основу для навигационного меню Web -сайта, так как они являются удобным способом определения структуры Web -сайта.

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

                                      Пошаговый пример

                                      Давайте рассмотрим пошаговый пример, чтобы собрать все это вместе. Рассмотрим следующий сценарий :

                                      Мы создаем небольшой Web - сайт для Кулинарной школы. На основной странице мы покажем список классифицированных рецептов, связанный ссылками со страницами рецептов. Каждая страница рецепта перечисляет требуемые ингредиенты, замечания по этим ингредиентам и метод приготовления. Тремя категориями являются "Cakes" (включающая рецепты для "Plain Sponge ", "Chocolate Cake" и "Apple Tea Cake"); "Biscuits" (включающая рецепты "ANZAC Biscuits", " Jam Drops" и "Melting Moments "); и "Quickbreads" (включающая рецепты для "Damper" и "Scones"). Клиенту все равно в каком порядке будут выводиться категории и рецепты, он просто хочет, чтобы люди понимали, какие позиции являются категориями, а какие являются рецептами.

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

                                      Разметка основной страницы

                                      Создайте правильно сформированную страницу HTML , включая doctype , элементы html , head и body , и сохраните его как stepbystep-main.html . Добавьте основной заголовок (h1 ) " HTML Cooking School", и подзаголовок (h2 ) "Recipes":

                                      HTML Cooking School

                                      Recipes

                                      Recipes

                                      • Cakes
                                      • Biscuits
                                      • Quickbreads

                                      Отступ для элементов li делает код удобнее для чтения, но не является обязательным.

                                      Теперь нужно добавить рецепты в качестве подпунктов, например, "Plain Sponge ", "Chocolate Cake" и "Apple Tea Cake" являются частью категории "Cakes". Для этого необходимо в каждой позиции списка создать вложенный список. Так как порядок неважен, то снова подходит неупорядоченный список. Чтобы упростить материал для учебного руководства, все рецепты можно соединить с одной страницей рецептов:

                                      Recipes

                                      • Cakes
                                        • Plain Sponge
                                        • Chocolate Cake
                                        • Apple Tea Cake
                                      • Biscuits
                                        • ANZAC Biscuits
                                        • Jam Drops
                                        • Melting Moments
                                      • Breads/quickbreads
                                        • Damper
                                        • Scones

                                      Списки активно используются для автоматической нумерации блоков контента. Однако при использовании вложенных списков нельзя получить нумерацию подпунктов типа 1.1, 1.2, 1.3, поскольку каждый список будет независимым. Но то, что нельзя в ШТМЛ, можно возложить на стили.

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

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

                                          Пример 1. Обычный вложенный список





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



                                          1. Пункт 1

                                            1. Подпункт 1.1

                                            2. Подпункт 1.2

                                            3. Подпункт 1.3



                                          2. Пункт 2

                                            1. Подпункт 2.1

                                            2. Подпункт 2.2





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

                                          Рис. 1. Вид вложенного списка

                                          Теперь уберем встроенную нумерацию списков и создадим ее по новой, но уже в том виде, что нам требуется. Для этого понадобится три стилевых атрибута: counter-reset , counter-increment и content .

                                          counter-reset — задает некоторую переменную, которая будет хранить значение счетчика;

                                          counter-increment — увеличивает или уменьшает значение счетчика на указанное число;

                                          content — выводит значение счетчика при использовании аргумента counter(переменная) . Работает совместно с псевдоэлементами after или before .

                                          Для списка первого уровня переменную счетчика назовем list1 , а для второго уровня — list2 . Тогда инициация счетчиков для списков будет следующей.

                                          OL { counter-reset: list1; } /* Список первого уровня */
                                          OL OL { counter-reset: list2; } /* Список второго уровня*/

                                          В данном случае отделить вложенный список от внешнего помогают конконтентные селекторы. Конструкция OL OL означает применять стиль только к тегу

                                            , но только когда он располагается внутри другого тега
                                              .

                                              Увеличение значения счетчика происходит через селектор OL LI:before , к которому добавляются стилевые атрибуты counter-increment и content . Атрибут counter-increment со значением list1 повышает значение этого счетчика на единицу, а content: counter(list1) ". " выводит значение счетчика перед пунктом списка. Эти атрибуты работают в паре, поэтому включать их надо одновременно.

                                              OL LI:before { /* Список первого уровня */
                                              counter-increment: list1;
                                              /* Выводим значение в виде 1., 2.*/
                                              }
                                              OL OL LI:before { /* Список второго уровня */
                                              counter-increment: list2; /* Увеличиваем значение счетчика */
                                              }

                                              Для вложенного списка вновь применяем конконтентные селекторы (OL OL ) и одновременно используем вывод счетчика list1 и list2 , в этом случае мы и получим нумерацию нужного нам вида.

                                              Окончательный код приведен в примере 2.

                                              Пример 2. Вложенные списки с автонумерацией





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




                                              1. Пункт

                                                1. Подпункт

                                                2. Подпункт

                                                3. Подпункт



                                              2. Пункт

                                                1. Подпункт

                                                2. Подпункт





                                              Результат данного примера показан на рис. 2.

                                              Рис. 2. Вид автонумерации списка в браузере Опера

                                              Замечание

                                              Приведенный пример не работает в браузере Internet Эксплорер до 7 версии включительно, поскольку он не поддерживает ни одно из приведенных стилевых свойств.

                                              Поскольку браузер Internet Эксплорер не поддерживает множество интересных стилевых атрибутов, специально для него обычную нумерацию в списках следует оставить нетронутой. Для этого дастаткова убрать list-style-type: none . Но это также затронет и другие браузеры, в которых пример работает корректно, поэтому придется применить хаком — так имеется ввиду прием, когда разным браузерам дается разный стилевой код. Например, можно применить тегом !important . При добавлении !important к значению стилевого атрибута его важность повышается. Если заново определить значение того же атрибута без !important , он будет игнорироваться браузерами. Но только не в Intenet Explorer версии 6 и ниже.

                                              LI {
                                              list-style-type: none !important; /* Убираем нумерацию в браузерах Опера, Safari, Файер фох */
                                              list-style-type: decimal; /* Оставляем нумерацию в браузере ИЕ6 и ниже */
                                              }

                                              Заменяя этим кoдам строку с селектором LI в примере 2 получим вложенный список корректно работающий во всех браузерах.

                                              - 4.5 out of 5 based on 2 votes

                                              Очень часто определенную информацию на сайте необходимо представить в виде списков.

                                              Списки позволяют упорядочить и систематизировать различную информацию и представить ее для посетителя в удобном виде.

                                              Списки в HTML могут быть трех разновидностей: маркированные списки, нумерованные списки и списки определений. Рассмотрим, как их создавать по порядку.

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

                                              Данный вид списка используется наиболее часто. Маркированный список в HTML создается при помощи тегов

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

                                                Код маркированного списка будет выглядеть так:

                                                • Вариант такой
                                                • Вариант сякой
                                                • Вариант эдакий

                                                Можете попробовать создать HTML страничку, используя данный код и у вас, в результате получится следующий список:

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

                                                  есть атрибут type, при помощи которого, и задается стиль маркера. Данный атрибут имеет следующие значения:

                                                  • disc - круг;
                                                  • circle - окружность;
                                                  • square - квадрат.

                                                  Значение disc используется по умолчанию.

                                                  Пример создания маркированного списка с маркерами в виде окружности:

                                                  • Вариант такой
                                                  • Вариант сякой
                                                  • Вариант эдакий

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

                                                  Создание маркированного списка с маркерами в виде квадратиков:

                                                  • Вариант такой
                                                  • Вариант сякой
                                                  • Вариант эдакий

                                                  Список будет иметь вид:

                                                  Атрибут type можно применять не только к тегу

                                                    , но и к тегу
                                                  • . Таким образом можно создать список с разнообразными маркерами.

                                                    • Вариант такой
                                                    • Вариант сякой
                                                    • Вариант эдакий

                                                    В результате получится следующее:

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

                                                    Нумерованные списки в HTML представляют собой списки, в которых каждый пункт имеет порядковый номер, создаются нумерованные списки при помощи тега

                                                      и вложенных в его тегов
                                                      1. Первая строчка
                                                      2. Вторая строчка
                                                      3. Третья строчка

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

                                                      По умолчанию нумерация производится арабскими цифрами. Но у тега

                                                        есть атрибут type, при помощи значений которого нумерацию можно делать заглавными (type="A") или строчными (type="a") латинскими буквами, римскими цифрами в верхнем (type="I") и нижнем (type="i") регистре.

                                                        Ниже приведены сокращенные варианты кода, и вид нумерации который может быть в том или ином случае.

                                                        Вид списка:

                                                        Вид списка:

                                                        Нумерация строчными буквами латинского алфавита:

                                                        Вид списка:

                                                        Вид списка:

                                                        Вид списка:

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

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

                                                        . Тег
                                                        создает контейнер для списка, тег
                                                        устанавливает термин, а тег
                                                        описание или определение термина.

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

                                                        Термин 1
                                                        Определение термина 1
                                                        Термин 2
                                                        Определение термина 2
                                                        Термин 3
                                                        Определение термина 3

                                                        В результате получится следующий список:

                                                        Как вы можете видеть, при этом создаются соответствующие отступы для термина и текста определения.

                                                        Вложенные или многоуровневые списки в HTML.

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

                                                        Например, вот код, при помощи которого в элементы маркированного списка вложены нумерованные списки.

                                                        • Вариант такой
                                                          1. Первая строчка
                                                          2. Вторая строчка
                                                          3. Третья строчка
                                                        • Вариант сякой
                                                          1. Первая строчка
                                                          2. Вторая строчка
                                                          3. Третья строчка
                                                        • Вариант эдакий
                                                          1. Первая строчка
                                                          2. Вторая строчка
                                                          3. Третья строчка