Нумерованный список css. Оформление списков в CSS. Форматирование нумерованных списков с помощью CSS

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

    , который и применяется для создания списка. Каждый пункт нумерованного списка обозначается тегом
  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. Нумерованный список с римскими числами

          От автора: Веб-браузеры позволяют вам изменить внешний вид многих элементов на странице с помощью CSS. Но при отрисовке некоторых элементов на странице, браузеры упорно не хотят изменять их оформление. Например, такие элементы формы, как выпадающие списки (select), радиокнопки (radio) и чекбоксы (checkbox) имеют свой определенный внешний вид в каждой операционной системе, и браузеры стараются навязать этот вид для веб-форм.

          Веб-браузеры также указывают, каким образом должны отображаться ненумерованные и нумерованные списки. Например, из-за браузеров очень сложно изменить внешний вид маркеров у ненумерованных списков и чисел у нумерованных списков. Конечно, существует несколько CSS свойств для работы со списками, например, list-style-type, list-style-image и list-style-position. Но даже для того чтобы сделать что-то простое (например, изменить цвет у чисел списка), потребуется прибегнуть к изощренным обходным путям в HTML/CSS.

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

          Весь секрет состоит из двух составляющих: во-первых, полностью спрятать стандартные (по умолчанию) числа у нумерованного списка, а во-вторых, использовать псевдо-элемент::before, чтобы добавить эти числа обратно.

          1. Добавляем класс или идентификатор (ID) для нумерованного списка . Это хорошая идея, позволяющая вам идентифицировать в дальнейшем каждый список, для которого вы захотите создать свои счетчики:

          1. Это первый элемент
          2. Это второй элемент
          3. Это третий элемент
          4. Это четвертый элемент
          5. Это пятый элемент
          6. Это шестой элемент

          < ol class = "custom-counter" >

          < / ol >

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

          2. Отменяем вид у маркера списка по умолчанию . Сначала, вам нужно удостовериться в том, что браузер не будет добавлять стандартное оформление для счетчиков. Сделать это вам поможет следующее правило:

          Custom-counter { margin-left: 0; padding-right: 0; list-style-type: none; }

          Custom - counter {

          margin - left : 0 ;

          padding - right : 0 ;

          list - style - type : none ;

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

          3. Задайте имя для свойства counter-increment у элементов списка . В CSS есть свойство, которое называется counter-increment. Оно позволяет задать имя для вашего счетчика. Это не дает нам ничего особенного, за исключением того, что мы сможем идентифицировать наш счетчик при использовании псевдо-элемента::before (что мы и сделаем в следующем шаге). Вот простой пример кода для указания имени счетчика:

          Custom-counter li { counter-increment: step-counter; }

          Custom - counter li {

          counter - increment : step - counter ;

          В этом примере, имя step-counter не обозначает ничего особенного. Оно не является ни значением для CSS свойства, ни чем-либо другим. Это просто имя, которое мы будем использовать в дальнейшем. Вы можете придумать любое имя: step, counter, или даже bottles-of-root-beer-on-the-wall (прим. пер.: бутылки из под рутбира (пиво из корнеплодов) на стене).

          4. Используйте псевдо-элемент::before для добавления чисел счетчика и их стилизации :

          Custom-counter li::before { content: counter(step-counter); margin-right: 5px; font-size: 80%; background-color: rgb(200,200,200); color: white; font-weight: bold; padding: 3px 8px; border-radius: 3px; }

          Custom - counter li :: before {

          content : counter (step - counter ) ;

          margin - right : 5px ;

          padding : 3px 8px ;

          border - radius : 3px ;

          Псевдо-элемент::before позволяет вам вставить контент перед элементом. В нашем случае он вставит контент перед элементом списка. Вы используете CSS свойство content, чтобы сообщить браузеру, какой контент он должен поместить в начало элемента списка. Это могут быть реальные слова или что-то автоматически сгенерированное браузером.

          Здесь мы используем значение counter(), которое использует в качестве параметра идентификатор, полученный из свойства counter-increment. Помните, что в шаге 2, мы указали имя step-counter для свойства counter-increment, задав тем самым имя для счетчика и сообщая браузеру о том, что нужно использовать счетчик для каждого элемента списка. Счетчик будет увеличиваться на единицу для каждого элемента списка, т.е. в результате у нас появится число 1 перед первым элементом списка, число 2 перед вторым элементом списка и т.д.

          Конечно, обычно браузеры так и поступают. Однако, используя псевдо-элемент::before мы также можем задать стилевое оформление для этих чисел, что было бы невозможно для стандартных нумерованных элементов списка. По сути, все остальные свойства в вышеприведенном правиле используются для того, чтобы просто создать классный внешний вид для счетчика (например, фоновый цвет, скругленные углы, другой цвет шрифта и т.д.). Эти стили демонстрируют лишь некоторые способы изменения внешнего оформления чисел у нумерованных списков. А вы можете сделать еще больше, поэтому не стесняйтесь использовать известные вам CSS приемы, чтобы создать интересные, забавные и красивые нумерованные списки.

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


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

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

          Для начала приведем простой пример. Затем посложнее - создадим вложенный список с автоматизированной нумерацией его пунктов и подпунктов.

          Идентификация счетчика

          Сначала необходимо идентифицировать счетчик.

          С помощью свойства counter-reset счетчику присваивается имя и начальное значение. Имя может быть любым, но не может начинаться с цифры.

          Фрагмент кода:

          Эта запись говорит о том, что для тега установлен счетчик с именем number и начальным значением 3 .

          По умолчанию начальное значение счетчика равно 0 .

          Приращение счетчика

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

          Фрагмент кода:

          body { counter-reset : number 3 ;}
          body p { counter-increment : number 3; }

          Этот фрагмент кода говорит о том, что абзацы (тег

          ) в теле документа будут нумероваться счетчиком number с приращением равным 3 .

          Первый абзац будет под номером 6 , так как начальное значение счетчика 3 и его приращение равно 3 .

          По умолчанию значение приращений счетчика равно 1 .

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

          Отображение счетчика

          Теперь необходимо вывести значение счетчика и задать правила его расположения. Это делается с помощью свойства content и псевдоэлементов before и after .

          Свойство content вставляет содержимое до (before ) или после (after ) указанного элемента.

          Фрагмент кода:

          body { counter-reset : number 3 ;}
          body p:after { counter-increment : number 3; content : " равно " counter(number) "." ;}

          Итак, к предыдущему фрагменту кода мы добавили свойство content , которое выводит слово "равно" , затем значение счетчика number и точку "." . Все это вставляется на страницу после содержимого абзаца (тега

          ), о чем говорит псевдоэлемент after .

          В итоге...

          Ниже представлен описанный пример.

          Фрагмент кода:






          2 умножить на 3


          3 умножить на 3


          4 умножить на 3


          5 умножить на 3


          Результат:

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

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

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

          А как насчет автоматической нумерации подпунктов вида 1.1, 1.2, 2.1, 2.2 и т.д.?

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

          Фрагмент кода:





          Автоматическая нумерация в CSS


          1. Первый пункт списка

            1. Первый подпункт 1-го пункта

            2. Второй подпункт 1-го пункта

          2. Второй пункт списка

            1. Первый подпункт 2-го пункта

            2. Второй подпункт 2-го пункта

          3. Третий пункт списка

            1. Первый подпункт 3-го пункта

            2. Второй подпункт 3-го пункта

            3. Третий подпункт 3-го пункта


            Результат:

            Вот так происходит автоматизация процесса нумерации вложенных списков!

            Если вы когда-либо пробовали изменять css-стили номеров строк (цифр) в упорядоченных списках

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

              Вот самый простой пример нестилизованного списка:

              html

              1. Посадить дерево
              2. Построить дом
              3. Вырастить сына

              Давайте рассморим несколько способов решения вышеописанной задачи.

              Традиционно топорный способ.

              Традиционный способ решения этой проблемы сводится к тому, чтобы скрыть номера строк, автоматически расставленные браузером. При этом используется свойство list-style: none; .

              css

              li{ list-style: none; } .num{ color: white; background: #2980B9; display: inline-block; text-align: center; margin: 5px 10px; line-height: 40px; width: 40px; height: 40px; }

              html

              1. 1 Посадить дерево
              2. 2 Построить дом
              3. 3 Вырастить сына

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

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

              Красивый и правильный способ.

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

              css

              ol{ counter-reset: myCounter; } li{ list-style: none; } li:before { counter-increment: myCounter; content:counter(myCounter); color: white; background: #2980B9; display: inline-block; text-align: center; margin: 5px 10px; line-height: 40px; width: 40px; height: 40px; }

              html

              1. Посадить дерево
              2. Построить дом
              3. Вырастить сына

              Как видите, html-код остается чистым и красивым. При этом вся стилизация элементов списка переносится в css.

              Давайте разберем по пунктам:

              • li::before – создает внутри списка псевдоэлемент, который становится на место первого потомка.
              • counter-reset:myCounter; – обнуляет css-счетчик myCounter внутри каждого
                  .
                1. counter-increment: myCounter; – инкрементирует css-счетчик myCounter для каждого псевдоэлемента::before .
                2. content:counter(myCounter); – выводит текущее значение счетчика myCounter внутри псевдоэлемента::before .

              подробнее о css-счетчиках можно посмотреть в

              HTML поддерживает списки трех разных типов, для каждоrо из которых предусмотрены свои собственные теrи:

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

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

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

                    (от англ. Ordered List – нумерованный список). Далее в контейнер
                      для каждого пункта списка помещается элемент
                    1. (от англ. List Item – пункт списка). По умолчанию применяется нумерованный список с арабскими числами.
                      Тег
                        имеет следующий синтаксис:

                        1. элемент 1
                        2. элемент 2
                        3. элемент 3

                        Элементы нумерованного списка должны содержать несколько элементов списка, как показано в следующем примере:

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

                        • Попробуй сам »

                        Пошаговая инструкция

                        1. Достать ключ
                        2. Вставить ключ в замок
                        3. Повернуть ключ на два оборота
                        4. Достать ключ из замка
                        5. Открыть дверь

                        Пошаговая инструкция

                        1. Достать ключ
                        2. Вставить ключ в замок
                        3. Повернуть ключ на два оборота
                        4. Достать ключ из замка
                        5. Открыть дверь

                        Иногда при просмотре существующих кодов HTML вы будете встречать аргумент type в элементе

                          , который используется для указания типа нумерации (буквы, римские и арабские цифры и т.п.). Синтаксис:

                            Здесь: type – символы списка:

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

                            Если вы хотите, чтобы список начинался с номера, отличного от 1, следует указать это при помощи атрибута start тега

                              .
                              В следующем примере показан нумерованный список с большими римскими цифрами и начальным значением XLIX:

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

                            1. следующим образом:

                            2. В этом случае последовательная нумерация списка прервётся и с этого пункта нумерация начнётся заново, в данном случае с семи.

                              Пример использования атрибута value тега

                            3. , который позволяет изменить номер данного элемента списка:

                              В этом примере "Первый пункт списка" будет иметь номер 1, "Второй пункт списка" – номер 7, а "Третий пункт списка" – номер 8.

                              Форматирование нумерованных списков с помощью CSS

                              Для изменения номеров списков стоит использовать свойство list-style-type таблицы стилей CSS:

                                Стили оформления нумерованных списков
                                Пример Значение Описание
                                а, Ь, с lower-alpha Строчные буквы
                                А, В, С upper-alpha Прописные буквы
                                i, ii, iii lower-roman Римские цифры, набранные строчными буквами
                                I, II, III upper-roman Римские цифры, набранные прописными буквами

                                Пример: Применение свойства CSS list-style-type

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

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

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

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

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

                                    Внутри тега

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

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

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

                                    Пример: Вложенные списки

                                    • Попробуй сам »
                                    • Понедельник
                                      1. Отправить почту
                                      2. Визит к редактору
                                        • Выбор темы
                                        • Дкаративное оформление
                                        • Заключительный отчет
                                      3. Вечерний просмотр сообщений
                                    • Вторник
                                      1. Пересмотреть график
                                      2. Отправить изображения
                                    • Среда...

                                    • Понедельник
                                      1. Отправить почту
                                      2. Визит к редактору
                                        • Выбор темы
                                        • Дкаративное оформление
                                        • Заключительный отчет
                                      3. Вечерний просмотр сообщений
                                    • Вторник
                                      1. Пересмотреть график
                                      2. Отправить изображения
                                    • Среда...

                                    Форматирование маркированных списков

                                    Для изменения внешнего вида маркера списков стоит использовать свойство list-style-type таблицы стилей CSS:

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

                                      Пример: Стили оформления маркированных списков

                                      • Попробуй сам »
                                      • Coffee
                                      • Coffee
                                      • Coffee
                                      • Coffee

                                      Disc:

                                      • Coffee
                                      • Milk

                                      Circle:

                                      • Coffee
                                      • Milk

                                      Square:

                                      • Coffee
                                      • Milk

                                      None:

                                      • Coffee
                                      • Milk

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

                                      В HTML есть возможность создать список с графическими маркерами. Одно дело, когда маркерами списка являются стандартные кружочки или квадратики, и совсем другое – когда разработчик сам подбирает маркер в соответствии с дизайном страницы. Для того, чтобы сделать элементы списка красивыми, часто используют маленькие картинки.
                                      Чтобы заменить обычный маркер на графический, заменим свойство list-style-type на свойство list-style-image и укажем URL–адрес картинки:

                                        Пример: Графические маркеры

                                        • Попробуй сам »

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

                                        • Телец
                                        • Близнeцы

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

                                        • Овен
                                        • Телец
                                        • Близнeцы

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

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

                                        (от англ. Definition List – список определений). Он включает в себя теги
                                        (от англ. Definition Term – определяемое слово, термин) и
                                        (от англ. Definition Description – описание определяемого термина).
                                        Списки определений часто используют в научно-технических и учебных изданиях, оформляя с их помощью глоссарии, словари, справочники и т.д.

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

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

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

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

                                        • Попробуй сам »

                                        Всемирная паутина — от англ. World Wide Web (WWW) — распределённая система, предоставляющая доступ к связанным между собой документам, расположенным на различных компьютерах, подключенных к Интернету. Интернет — совокупность сетей, применяющих единый протокол обмена для передачи информации. Сайт — набор отдельных веб-страниц, которые связаны между собой ссылками и единым оформлением.

                                        Всемирная паутина
                                        — от англ. World Wide Web (WWW) — распределённая система, предоставляющая доступ к связанным между собой документам, расположенным на различных компьютерах, подключенных к Интернету.
                                        Интернет
                                        — совокупность сетей, применяющих единый протокол обмена для передачи информации.
                                        Сайт
                                        — набор отдельных веб-страниц, которые связаны между собой ссылками и единым оформлением.

                                        По-умолчанию, текст термина прижимается к левому краю окна браузера, а описание термина располагается ниже и сдвигается вправо.