Нумерованный список css. Создание списков

Здравствуйте, уважаемые читатели блога сайт. Сегодня в рамках этой рубрики я хочу поговорить о разнообразных Html списках, которые можно создать на основе специально предназначенных для этого тегов UL, OL, LI и DL. С помощью пары UL и LI создаются маркированные списки, с помощью OL и LI - нумерованные, а с помощью элементов DL, DT и DD создаются так называемые листинги определений. Так же мы рассмотрим вкратце принципы создания вложенных конструкций.

Хочу напомнить вам, что мы уже успели , успели поговорить про основы современной , а так же верстки табличной (). Кроме этого мы затронули основы , ну и узнали через .

Маркированные списки на основе тэгов UL и LI

Для создания маркированных списков используется тег UL, а для создания нумерованных – OL. Эти теги являются парными и блочными, точно так же, как и элемент LI.

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

Давайте посмотрим, например, маркированный вариант, который может выглядеть так:

  • Первая строка
  • Вторая
  • Последний элемент

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

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

Для UL можно менять вид маркера, прописывая в нем разные значения для атрибута «Type». Если «Type» (управление внешним видом маркеров) для элемента UL не указан, то будет отображаться вид маркера, принятого по умолчанию (disc — закрашенный в цвет текста кружок):

    • — закрашенный кружок (по умолчанию);
      • — не закрашенный кружок;
        • – квадрат

В приведенных примерах атрибут «Type» мы прописывали в элементе UL, применяя данный тип маркеров для всех пунктов. Но атрибут «Type» можно прописать и для каждого отдельного тега LI, задав для этого пункта свой собственный тип маркера.

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

  1. Маркер в виде закрашенного диска
  2. Маркер в виде не закрашенного диска
  3. Квадрат

Нумерованные списки в Html на основе тэга OL

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

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

  1. Первая строка
  2. Второй пункт
  3. Третья строка

Как я уже упоминал чуть выше, у элементов UL, OL и LI имеется возможность использовать атрибут TYPE. Он позволяет настроить тип маркера или задать, какими цифрами или буквами будут нумероваться пункты листинга. Для нумерованного списка параметры этого атрибута могут принимать следующие значения:

    1. — нумерация будет выполняться обычными арабскими цифрами (этот же вариант будет использоваться по умолчанию, при отсутствии атрибута «Type»);
      1. — заглавные буквы в качестве нумерации;
        1. — строчные буквы;
          1. — заглавные римские цифры;
            1. — строчные римские цифры;

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

            1. с нумерацией большими римскими цифрами
            2. Нумерация маленькими латинскими буквами
            3. Нумерация малыми римскими цифрами

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

            1. Первый элемент, номер которого задан в теге OL атрибутом start="23"
            2. Следующий пункт, с номером на единицу большим
            3. Еще на единицу больше

            Для OL так же можно начать новую нумерацию с любого значения, начиная с любого пункта, прописав в открывающем LI этого пункта атрибут VALUE с требуемым числом. Например:

            1. Первый пункт с номером один
            2. Этот элемент получит номер, указанный в атрибуте value="32"
            3. Пункт с большим номером

            Оформление внешнего вида списков в CSS (таблицах стилей)

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

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

            • Первый пункт
            • Второй
            • Последний

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

            Специальные и вложенные списки в Html коде

            Третий и последний вид называется «списки определений» и задаются они с помощью трех тегов — DL, DT и DD. DL сообщает браузеру, что далее последует список определений.

            Обычно такой вид используется (ну, или предполагалось, что он будет использоваться) для написания словарных статей, состоящих из терминов (заключенных в теги DT) и их описаний (заключенных в теги DD).

            Первый термин
            Описание
            Второй термин
            Его описание

            Если вы посмотрите на приведенный выше пример, то заметите, что элемент DD (описание термина) сдвигается (на 40 пикселей) относительно элемента DT (самого термина).

            Вообще, DL, DT и DD являются блочными тегами, причем, внутри элемента DT можно вставлять только контент со строчными тегами (получается, что внутри DT нельзя будет использовать блочные элементы заголовков и абзацев). А внутри тегов DD можно вставлять любые элементы и строчные и блочные.

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

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

            1. Первый пункт основного нумерованного
            2. Второй пункт
              • Первый элемент вложенного маркированного
              • Второй
              • Третий и последний пункт маркированного
            3. Третий элемент нумерованного

            Удачи вам! До скорых встреч на страницах блога сайт

            Вам может быть интересно

            Как вставить в HTML ссылку и картинку (фото) - теги IMG и A Select, Option, Textarea, Label, Fieldset, Legend - теги Html формы выпадающих списков и текстового поля
            Html формы для сайта - теги Form, Input и Select, Option, Textarea, Label и другие для создания элементов вебформ
            Как задаются цвета в Html и CSS коде, подбор RGB оттенков в таблицах, выдаче Яндекса и других программах
            Embed и object - Html теги для отображения медиа контента (видео, флеш, аудио) на веб страницах
            Теги и атрибуты заголовков H1-H6, горизонтальной линии Hr, переноса строки Br и абзаца P по стандарту Html 4.01
            Таблицы в Html - теги Table, Tr и Td, а так же Colspan, Cellpadding, Cellspacing и Rowspan для их создания
            Что такое язык гипертекстовой разметки Html и как посмотреть список всех тэгов в валидаторе W3C
            Теги Font (Face, Size и Color), Blockquote и Pre - устаревшее форматирование текста в чистом HTML (без использования CSS)
            Iframe и Frame - что это такое и как лучше использовать фреймы в Html
            Img - Html тег для вставки картинки (Src), выравнивания и обтекание ее текстом (align), а так же задания фона (background)

            Нумерованные списки представляют собой набор элементов с их порядковыми номерами. Вид и тип нумерации зависит от атрибутов тега

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

              1. Первый пункт
              2. Второй пункт
              3. Третий пункт

              Если не указывать никаких дополнительных атрибутов и просто написать тег

                , то по умолчанию применяется список с арабскими числами (1, 2, 3,...), как показано в примере 11.3.

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

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

                Работа со временем

                1. создание пунктуальности (никогда не будете никуда опаздывать);
                2. излечение от пунктуальности (никогда никуда не будете торопиться);
                3. изменение восприятия времени и часов.

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

                Рис. 11.3. Вид нумерованного списка

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

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

                • арабские числа (1, 2, 3, ...);
                • прописные латинские буквы (A, B, C, ...);
                • строчные латинские буквы (a, b, c, ...);
                • прописные римские числа (I, II, III, ...);
                • строчные римские числа (i, ii, iii, ...).

                Для указания типа нумерованного списка применяется атрибут type тега

                  . Его возможные значения приведены в табл. 11.2.

                  Табл. 11.2. Типы нумерованного списка
                  Тип списка Код HTML Пример
                  Арабские числа

                  1. Чебурашка
                  2. Крокодил Гена
                  3. Шапокляк
                  Прописные буквы латинского алфавита

                  A. Чебурашка
                  B. Крокодил Гена
                  C. Шапокляк
                  Строчные буквы латинского алфавита

                  a. Чебурашка
                  b. Крокодил Гена
                  c. Шапокляк
                  Римские числа в верхнем регистре

                  I. Чебурашка
                  II. Крокодил Гена
                  III. Шапокляк
                  Римские числа в нижнем регистре

                  i. Чебурашка
                  ii. Крокодил Гена
                  iii. Шапокляк

                  Чтобы начать список с определенного значения, используется атрибут start тега

                    . При этом не имеет значения, какой тип списка установлен с помощью type , атрибут start одинаково работает и с римскими и с арабскими числами. В примере 11.4 показано создание списка с использованием римских цифр в верхнем регистре, начинающихся с восьми.

                    Пример 11.4. Нумерация списка

                    Римские числа

                    1. Король Магнум XLIV
                    2. Король Зигфрид XVI
                    3. Король Сигизмунд XXI
                    4. Король Хусбрандт I

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

                    Рис. 11.4. Нумерованный список с римскими числами

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                        Теги
                          и

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

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

                      1. .

                        Приведем пример 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) в качестве следующего номера берется первый двухбуквенный номер - АА и т. д.

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


                                  . . .

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

                                Списки активно используются для автоматической нумерации блоков контента. Однако при использовании вложенных списков нельзя получить нумерацию подпунктов типа 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 получим вложенный список корректно работающий во всех браузерах.