Как в html изменить стиль нумерации. Правильная нумерация во вложенных нумерованных списках HTML с помощью CSS. Вложенные списки с автоматической нумерацией

💖 Нравится? Поделись с друзьями ссылкой

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

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

    • арабские цифры (1, 2, 3, ...);
    • арабские цифры c нулём впереди для цифр меньше десяти (01, 02, 03, ...,10);
    • прописные латинские буквы (А, В, С, ...);
    • строчные латинские буквы (а, b, с, ...);
    • римские цифры в верхнем регистре (I, II, III, ...);
    • римские цифры в нижнем регистре (i, ii, iii, ...);
    • армянская нумерация;
    • грузинская нумерация.

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

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

    Допускается начинать список с любого номера; для этой цели применяется атрибут start элемента

      или value у элемента
    1. . В качестве значения указывается любое целое положительное число. При этом неважно, какой тип нумерации установлен, даже если в качестве списка используются латинские буквы. Если одновременно для списка применяются атрибуты start и value , то последний имеет большее преимущество, и нумерация отображается с числа, указанного value , как показано в примере 1.

      Пример 1. Изменение нумерации списка

      Списки

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

      Первый элемент списка в данном примере будет начинаться с римской цифры IV, поскольку указан атрибут start="4" , затем идет номер V, а последний элемент следует не по порядку и назначается номером X (рис. 1).

      Рис. 1. Римские цифры в списке

      Написание чисел

      По умолчанию нумерованный список имеет определённый вид: вначале идет число, затем точка и после этого через пробел отображается текст. Такая форма написания наглядна и удобна, но некоторые разработчики предпочитают видеть другой способ оформления нумерации списков. А именно, чтобы вместо точки шла закрывающая скобка, как продемонстрировано на рис. 2 или нечто подобное.

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

      Стили позволяют поменять вид нумерации списков с помощью свойств content и counter-increment . Вначале для селектора ol требуется задать counter-reset : item , это нужно для того, чтобы нумерация в каждом новом списке начиналась заново. В противном случае, нумерация будет продолжена и вместо 1,2,3 можно будет увидеть 5,6,7. Значение item это уникальный идентификатор счётчика, мы его выбираем сами. Далее необходимо спрятать исходные маркеры через стилевое свойство list-style-type со значением none .

      Свойство content, как правило, работает в сочетании с псевдоэлементами ::after и ::before . Так, конструкция li::before говорит о том, что перед каждым элементом списка необходимо добавить какое-то содержание (пример 2).

      Пример 2. Создание своей нумерации

      Li::before { content: counter(item) ") "; /* Добавляем к числам скобку */ counter-increment: item; /* Задаём имя счетчика */ }

      Свойство content со значением counter(item) выводит число; добавляя скобку, как показано в данном примере, получим требуемый вид нумерации. counter-increment необходим для увеличения номера списка на единицу. Обратите внимание, что везде используется один и тот же идентификатор с именем item . Окончательный код показан в примере 3.

      Пример 3. Изменение вида списка

      Списки

      1. Первый
      2. Второй
      3. Третий
      4. Четвертый

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

      Content: "[" counter(item) "] ";

      Список с русскими буквами

      Нумерованный список есть с латинскими буквами, а вот русских букв для списка нет. Их можно добавить искусственно, воспользовавшись вышеприведённым приёмом. Поскольку нумерация делается через стили, сам список остаётся исходным, к нему лишь добавляется выбранный класс, назовём его cyrilic (пример 4).

      Пример 4. Код для создания списка

      1. Один
      2. Два
      3. Три

      Добавление букв осуществляется с помощью псевдоэлемента ::before и свойства content . Поскольку в каждой строке должна быть своя буква, воспользуемся псевдоклассом :nth-child(1) , в скобках пишется номер буквы. Первой буквой, естественно, идёт А, второй - Б, третьей - В и т. д. Весь этот набор добавляется к селектору li следующим образом (пример 5).

      Пример 5. Применение псевдокласса:nth-child

      Cyrilic li:nth-child(1)::before { content: "а)"; } .cyrilic li:nth-child(2)::before { content: "б)"; } .cyrilic li:nth-child(3)::before { content: "в)"; }

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

      Окончательно настраиваем выравнивание и положение букв, по желанию указываем размер шрифта, цвет и другие параметры (пример 6).

      Пример 6. Список с русскими буквами

      Список

      1. Борщ
      2. Котлеты из щуки
      3. Кулебяка
      4. Грибы в сметане
      5. Блины с икрой
      6. Квас

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

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

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

              Для списков, о создании которых средствами HTML рассказано здесь, предусмотрены следующие CSS-правила.

              list-style-type

              Задаёт маркер или нумерацию списков вместо атрибута type в HTML-коде. Значения свойств для маркированных списков могут быть:

              • disk - кружок, установлен по умолчанию.
              • circle - окружность.
              • square - квадрат.

              Для нумерованных списков свойству обычно присваиваются значения:

              • decimal - арабские цифры, значение установлено по умолчанию.
              • lower-roman - маленькие римские цифры.
              • upper-roman - заглавные римские цифры.
              • lower-alpha - строчные латинские буквы.
              • upper-alpha - прописные латинские буквы.

              Также для любого типа списка свойству list-style-type можно указать значение none, которое вообще уберёт маркер.

              Для нумерованных списков доступны и другие значения, например, cjk-ideographic задаёт идеографическую нумерацию, Armenian - традиционную армянскую, а decimal-leading-zero установит нумерацию римскими цифрами, но с нулём в начале: 01, 02, 03… 09, однако на практике эти и подобные им значения используются крайне редко.

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

              Списки CSS

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

              Результат.

              Цвет маркеров совпадает с цветом текста в списке, указанного свойством color .

              list-style-image

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

              Ul { list-style-image: url("marker.png"); }

              list-style-position

              Определяет положение маркера: либо он вынесен за границу элемента списка (list-style-position: outside ), либо текст его обтекает (list-style-position: inside ).

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

              list-style-position

              • Вы просто посмотрите, чем отличаются inside от outside.
              • В случае с inside маркер прямо-таки вписывается в список, не выходя за его пределы и не мешая вёрстке. Текст обтекает его, маркер как бы внутри.
              • Значение outside выносит маркер за пределы списка.

              В результате создаётся такая страница:

              list-style

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

              Ul { list-style: square inside; }

              Рассмотрим пример страницы с тремя списками. Первый нумеруется цифрами в формате 01, 02, второй маркируется пользовательским рисунком (файл marker.png в папке со страницей), маркер третьего списка отключен.

              HTML-код приведён ниже.

              list-style

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

              Браузер отобразит следующую страницу.


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

              В 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. Но при отрисовке некоторых элементов на странице, браузеры упорно не хотят изменять их оформление. Например, такие элементы формы, как выпадающие списки (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 приемы, чтобы создать интересные, забавные и красивые нумерованные списки.

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



Рассказать друзьям