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

16.05.2019 Фото и видео

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

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

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

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

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

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

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

Для создания нумерованных списков в HTML используется тег

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

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

    1. Кофе
    2. Чай
    3. Молоко
    Попробовать »

    Примечание: тег

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

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

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

      Для создания маркированных списков в HTML применяется тег

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

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

        • Кофе
        • Чай
        • Молоко
        Попробовать »

        Виды маркеров

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

        Маркированные списки не имеют атрибута type , поэтому средствами HTML изменить вид маркера у маркированного списка не получится. Для изменения вида маркера, в этом случае, можно воспользоваться CSS свойством list-style-type , с помощью которого, помимо значения по умолчанию, можно выбрать ещё два вида маркера: circle или square .

        Изменение маркеров у списков:

        Заголовок страницы

        Нумерованный список c атрибутом type="a":

        1. Яблоки
        2. Бананы
        3. Лимоны

        Нумерованный список c атрибутом type="I":

        1. Яблоки
        2. Бананы
        3. Лимоны

        Виды маркеров маркированных списков:

        • Яблоки
        • Бананы
        • Лимоны
        • Яблоки
        • Бананы
        • Лимоны
        Попробовать »

        CSS свойство list-style-type , помимо видов маркеров для маркированных списков, имеет множество различных видов маркеров и для нумерованных списков. Но не всегда изменения одного стандартного вида маркера на другой бывает достаточно для того, чтобы красиво оформить список. Для оформления списков лучше использовать CSS, который позволяет не только изменять вид маркера, но и заменять маркеры на картинки, контролировать их расположение и управлять отступом. Как всё это делать вы можете посмотреть .

        Горизонтальный список

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

        Чтобы создать горизонтальный список, надо для пунктов списка прописать CSS свойство display со значением inline или inline-block , в зависимости от того, какие ещё свойства вы собираетесь использовать.

        Заголовок страницы

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

        1. Яблоки
        2. Бананы
        3. Лимоны

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

        • Яблоки
        • Бананы
        • Лимоны
        Попробовать »

        После этого все пункты списка выстроятся в одну строку. Обратите внимание, что у пунктов списка пропадут маркеры и между ними не будет даже пробела, но отступ слева у списка останется.

        Как горизонтальный список превратить в горизонтальное меню, вы можете посмотреть .

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

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

          — каждый элемент списка
        • отмечается маркером,
          нумерованный список
            — каждый элемент списка
          1. отмечается цифрой,
            список определений — — состоит из пар термин
            определение.

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

            Создание HTML-списков

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

            Маркированный список представляет собой неупорядоченный список (от англ. Unordered List) . Создаётся с помощью парного тега

            . В качестве маркера элемента списка выступает метка, например, закрашенный кружок.

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

            Каждый элемент списка создаётся с помощью парного тега

          2. (от англ. List Item) .
            доступны .
          • Microsoft
          • Google
          • Apple
          Рис. 1. Маркированный список

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

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

        • . Браузер нумерует элементы по порядку автоматически и если удалить один или несколько элементов такого списка, то остальные номера будут автоматически пересчитаны.

          Блок списка также имеет стили браузера по умолчанию:

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

          Для тега

            доступны следующие атрибуты:

            Таблица 1. Атрибуты тега
            Атрибут Описание, принимаемое значение
            reversed Атрибут reversed задает отображение списка в обратном порядке (например, 9, 8, 7…).
            start Атрибут start задает начальное значение, от которого пойдет отсчет нумерации, например, конструкция
              первому пункту присвоит порядковый номер «10». Также можно одновременно задавать тип нумерации, например,
                .
            type Атрибут type задает вид маркера для использования в списке (в виде букв или цифр). Принимаемые значения:
            1 — значение по умолчанию, десятичная нумерация.
            A — нумерация списка в алфавитном порядке, заглавные буквы (A, B, C, D).
            a — нумерация списка в алфавитном порядке, строчные буквы (a, b, c, d).
            I — нумерация римскими заглавными цифрами (I, II, III, IV).
            i — нумерация римскими строчными цифрами (i, ii, iii, iv).
            1. Microsoft
            2. Google
            3. Apple
            Рис. 2. Нумерованный список

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

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

            . Для добавления термина применяется тег
            , а для вставки определения — тег
            .

            Блок списка определений имеет следующие стили браузера по умолчанию:

            Для тегов

            ,
            и
            доступны .

            Режиссер:
            Петр Точилин
            В ролях:
            Андрей Гайдулян
            Алексей Гаврилов
            Виталий Гогунский
            Мария Кожевникова
            Рис. 3. Список определений

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

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

            • Пункт 1.
            • Пункт 2.
              • Подпункт 2.1.
              • Подпункт 2.2.
                • Подпункт 2.2.1.
                • Подпункт 2.2.2.
              • Подпункт 2.3.
            • Пункт 3.

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

            5. Многоуровневый нумерованный список

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

            1. пункт
            2. пункт
              1. пункт
              2. пункт
              3. пункт
                1. пункт
                2. пункт
                3. пункт
              4. пункт
            3. пункт
            4. пункт

            Такая разметка по умолчанию создаст для каждого вложенного списка новую нумерацию, начинающуюся с единицы. Чтобы сделать вложенную нумерацию, нужно использовать следующие свойства:
            counter-reset сбрасывает один или несколько счётчиков, задавая значение для сброса;
            counter-increment задаёт значение приращения счётчика, т.е. с каким шагом будет нумероваться каждый последующий пункт;
            content — генерируемое содержимое, в данном случае отвечает за вывод номера перед каждым пунктом списка.

            Ol { /* убираем стандартную нумерацию */ list-style: none; /* Идентифицируем счетчик и даем ему имя li. Значение счетчика не указано - по умолчанию оно равно 0 */ counter-reset: li; } li:before { /* Определяем элемент, который будет нумероваться — li. Псевдоэлемент before указывает, что содержимое, вставляемое при помощи свойства content, будет располагаться перед пунктами списка. Здесь же устанавливается значение приращения счетчика (по умолчанию равно 1). */ counter-increment: li; /* С помощью свойства content выводится номер пункта списка. counters() означает, что генерируемый текст представляет собой значения всех счетчиков с таким именем. Точка в кавычках добавляет разделяющую точку между цифрами, а точка с пробелом добавляется перед содержимым каждого пункта списка */ content: counters(li,".") ". "; }
            Рис. 5. Многоуровневый нумерованный список

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

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

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

        Обычный нумерованный можно создать при помощи следующих тегов:

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

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

      • , то автоматически перед ним ставит
      • .

        Таким образом, списки можно делать так, как показано ниже.

        Но с точки зрения профессионалов это некорректно.

        Ненумерованные (или же маркерные) списки создаются точно так же, только вместо тега ol, пишется ul.

        В нет цифр или букв - только различные символы, которые называются маркерами.

        Многоуровневый нумерованный список HTML

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

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

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

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

        Если использовать специальный HTML-тег, нумерованный список может стать любым, каким вы хотите.

        Можно указать атрибут type с любым значением из таблицы. Или в классе стиля css указать list-style-type с желаемым типом сортировки.

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

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

        • 1 - арабские цифры;
        • A - заглавные ;
        • a - строчные латинские буквы;
        • I - заглавные римские цифры;
        • i - строчные римские цифры.

        По умолчанию всегда используется список с То есть, если вы ничего не указали, это равносильно type="1".

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

        Кроме этого, можно сделать вывод в обратном порядке. Для этого нужно написать reversed.

        Оформление списков

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

        Вот примеры красивых списков.

        Как видно из примера, можно изменять внешний вид нумерации и самих элементов.

        Создать обычный список можно вот так.

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

        Рассмотрим сначала вариант с круглым оформлением списка. Вернитесь к коду списка. Там указан класс rounded-list. Вот именно с этим классом нужно повозиться, чтобы сделать такую красоту. Назвать класс вы можете как хотите.

        Теперь рассмотрим квадратное оформление.

        Стили весьма похожи. Разница в том, что в первом случае происходит округление элемента посредством возможностей css.

        Профессиональный верстальщик должен предвидеть и понимать, что не все пользователи используют современные компьютеры. Не у всех установлены Windows 7, 8, 10. Существует процент пользователей, кто до сих пор сидит на Windows XP и использует старые версии браузера Internet Explorer.

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

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

        Делайте что-то подходящее для всех или учитывайте все варианты браузеров.

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

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

          • арабские цифры (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.