Как разместить элементы списка горизонтально? Стилизация номеров строк (цифр) в упорядоченных списках ol Нумерованный список с уникальным изображением для каждого пункта.

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

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

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

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

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

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

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

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

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

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

        Тэги

          и <LI >

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


          .

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

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

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

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

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

            • Овен

            • Телец

            • Близнецы

            • Рак

            • Лев

            • Дева

            • Весы

            • Скорпион

            • Стрелец

            • К озерог

            • Водолей

            • Рыбы

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

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

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

          Примечание

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

          В тэге

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

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

            Примечание

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

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

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

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

                .

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

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

              • .

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

              • .

                Примечание

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

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

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

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

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

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

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

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

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

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

                      Овен

                      Телец

                      Близнeцы

                      Paк

                      Лeв

                      Дева

                      Весы

                      Скорпион

                      Cтpeлeц

                      Козерог

                      Водолей

                      Рыбы

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

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

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

                  Примечание

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

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

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

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

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

                    Тэги

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

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

                    2. .

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

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

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

                        • Сириус

                        • К анопус

                        • Арктур

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

                        • Вега

                        • К апелла

                        • Ригель

                        • Процион

                        • Ахернар

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

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

                        • Альдебаран


                          . . .

                        • Мицар


                          . . .

                        • Пoляpнaя

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

                      В тэге

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

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

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

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

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

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

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

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

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

                      1. .

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

                      2. .

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

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

                            .

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

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

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

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

                            1. .

                              Примечание

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

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

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

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

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

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


                                1. . . .


                              1. . . .


                              1. . . .

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

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

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

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

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

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

                              Термин

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

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

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

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

                              -

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

                              В тэге

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

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

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

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

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

                                Флегматик

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

                                Сангвиник

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

                                Холерик

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

                                Меланхолик

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

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

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

                              Списки типа

                              и

                              Списки типа

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

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

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

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

                                списки типа

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

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

                                  .

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

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

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

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

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

                                  • Земпя

                                      1. Луна

                                  • Mapc

                                      1. Фобос

                                      2. Деймос

                                  • Уран

                                      1. Ариэль

                                      2. Умбриэль

                                      3. Титания

                                      4. Оберон

                                      5. Миранда

                                  • Нептун

                                      1. Тритон

                                      2. Нереида

                                    Задача

                                    Отобразить маркированый список горизонтально без маркеров.

                                    Решение

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

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

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

                                      или

                                      Так вот, тег

                                    • также является блочным элементом.

                                      Чтобы тег

                                    • не вёл себя как блочный элемент, можно при помощи CSS сделать его строчным.

                                      За то, как элемент будет отображён в документе отвечает CSS свойство display . Рассмотрим три его значения (хотя их больше):

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

                                      Сначала сделаем горизонтальный список превратив его пунткы в строчные элементы. В стиле CSS пропишем правило, в котором селектору li установлено свойство display со значением inline .

                                      Список горизонтально

                                      Итак, этот стиль сработал и получили горизонтальное расположение пунктов списка:

                                      Рисунок 1. Работа примера №1.

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

                                      Например нам нужно чтобы элемент создаваемого нами меню имел ширину 150px и высоту 40px . Попробуем изменить стиль на следующий, то есть добавим два правила устанавливающих размер пункта меню:

                                      Эти правки не приведут ни к каким изменениям. Чтобы элементы меню располагались горизонтально и можно было устанавливать их ширину и высоту им нужно установить тип inline-block . Изменим код нашего примера:

                                      Список горизонтально

                                      Этот код работает и изменения видны:


                                      Рисунок 2. Работа примера №2.

                                      Но могут быть разные варианты, например нам нужно отобразить в меню вложенные списки:

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

                                      Вот результат работы этого кода:


                                      Рисунок 3. Работа примера №3.

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

                                      А собственно, почему так происходит?

                                      Наши блоки имеют свойство display со значением inline-block . Это значит что у них есть качества как блочных элементов (возможность указать ширину и высоту), так и строчных элементов. То что мы наблюдаем - это качество строчных элементов.

                                      Давайте рассмотрим строку с символами "А" разной величины:

                                      А А А А А А А

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

                                      Для выравния текста по вертикали служит свойство vertical-align . В нашем примере №3 нужно использовать значение top , которое выравняет верхнюю границу элемента по верху самого высокого элемента строки.

                                      Пока применим его к строке с символами "А" разной величины:

                                      А А А А А А А

                                      Кажется, что буквы немного "скачут". Я установил CSS границу border самой высокой букве, чтобы было видно, что скачков на самом деле нет, есть пустое пространство между верхней границей (по которой происходит выравнивание) и верхней точкой символа "А".

                                      Свойство vertical-align нужно применять к каждому строчному элементу, оно не наследуется. Вы можете прочитать подробней про это свойство: vertical-align .

                                      После этого отступления продолжим размещать элементы списка горизонтально.

                                      Второй способ

                                      Разместить элементы списка горизонтально можно используя свойство float . Это свойство указывает по какой стороне выравнивается элемент, имеет две позиции: left и right .

                                      Вот пример с использованием этого кода:

                                      Список горизонтально

                                      Вот результат работы кода:

                                      Рисунок 4. Работа примера.

                                      Вроде пример работает. Но в использовании этого свойства есть один нюанс. Сейчас мы его рассмотрим. Для примера возьмём код, в котором есть два горизонтальных списка с разным способом расположения элементов горизонтально: display и float :

                                      Список горизонтально

                                      Вот результат работы кода:

                                      Рисунок 5. Работа примера.

                                      В этих примерах контейнеры списка

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

                                        При этом на первый взгляд всё работает. Но давайте поменяем местами наши списки. Поставим список с классом menu-1 в коде перед списком с классом menu-2 (сейчас он ниже).

                                        Вот что мы получим в результате:

                                        Рисунок 6. Работа примера.

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

                                        Как решить эту проблему?

                                        Для этого нужно использовать свойство clear , оно отменяет обтекание элементом другого элемента, если у того установлено свойство float .

                                        Вот изменённый пример с использованием свойства clear :

                                        Список горизонтально

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

                                      • всё ещё располагаются вне контейнера
                                          .

                                          Рисунок 7. Работа примера.

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

                                          Это делается при помощи псевдоэлемента. Вот код:

                                          Список горизонтально

                                          Теперь у нас 100% рабочий код.

                                          Рисунок 8. Работа примера.

                                          Этот приём со свойством float обычно используют при вёрстке сайтов для выравнивания столбцов, которые создаются тегами

                                          . Таким способом мы получаем нормальное построение столбцов с требуемым выравниванием по высоте. Когда мы создаём меню, то нам, в большенстве случаев, не важна высота блоков, она практически всегда одинакова. Поэтому использование правила {display : inline-block } в этих случаях вполне оправдано.

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

                                          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. Многоуровневый нумерованный список

                                          Списки бывают нумерованными и ненумерованными.

                                          Нумерованные списки выводятся кодом:

                                            Список с цифрами
                                          1. пункт 1
                                          2. пункт 2
                                          3. пункт 3

                                          Не нумерованные списки выводятся кодом:

                                            Список с галочками или другими символами
                                          • пункт 1
                                          • пункт 1
                                          • пункт 1

                                          Каждый пункт любого списка заключается в тег li. Все пункты списка заключаются в один общий тег ul или ol. Стили этих тегов прописываются в таблице стилей.

                                          Для каждого тега присваиваются определенные стили оформления. В них указываются отступы от текста.

                                          Для нумерованного списка прописываются стили нумерации для каждого пункта.

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

                                          list-style-type: decimal; /*арабские цифры*/

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

                                          list-style-type: circle; /*кружки*/
                                          list-style-type: square; /*квадраты*/

                                          Каждому пункту меню можно назначить изображение.

                                          list-style-image: url(‘путь к изображению’);

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

                                          Где стили списков прописаны в шаблоне Twenty Eleven?

                                          Откройте файл стилей style.css. Найдите раздел с названием /* Text elements */

                                          Стандартный код выглядит вот так:

                                          Как оформить нумерованный список?

                                          Нумерованный список с использованием фона

                                          Посмотрите вот на такое симпатичное оформление нумерованного списка.

                                          Нравится? Давайте повторим.

                                          Найдите стили для тега ol. Пропишите к нему новые свойства.

                                          Ol { padding: 0px 0 0 20px; margin: 0.5em 0 1.571em 1.9em; color: #2E2E2E; list-style-type: none; font: 15px/17px Verdana, Arial, Helvetica, sans-serif; z-index: 2; counter-reset: point; } ol li { margin-bottom: 4px; line-height: 1.6; color: #2E2E2E; position: relative; } ol li:before { margin-bottom: 4px; counter-increment: point 1; line-height: 1.6; height: 24px; margin-left: -36px; left: 0px; width: 24px; margin-top: 1px; background: #BDC3C7; content: counter(point); text-align: center; position: absolute; font-weight: bold; }

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

                                          list-style-type: none; — отключает вывод стандартных цифр
                                          counter-reset: point; — задает переменную для счетчика нумерации
                                          position: relative; — размещает нумерацию возле самих пунктов

                                          before — псевдоэлемент для тега ol li. Имеет следующие стили:
                                          content: counter(point); — выводит значение переменной
                                          counter-increment: point 1; — увеличивает счетчик на 1
                                          position: absolute;
                                          background: #BDC3C7; — фон для цифр (фон можно задать цветом или красивой иконкой
                                          margin – внешние отступы
                                          padding – внутренние отступы
                                          color – цвет текста элемента
                                          background – фон
                                          text-align – выравнивание текста
                                          font-weight – толщина (насыщенность) шрифта

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

                                          Нумерованный список с уникальным изображением для каждого пункта

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

                                          Как это реализовано? Давайте рассмотрим следующий код:

                                          /*первый номер*/ ol li:first-child { list-style-image: url(путь к изображению с цифрой 1); } /*второй номер*/ ol li:nth-child(2n) { list-style-image: url(путь к изображению с цифрой 2); } /*третий номер*/ ol li:nth-child(3n) { list-style-image: url(путь к изображению с цифрой 3); } /*четвертый номер*/ ol li:nth-child(4n) { list-style-image: url(путь к изображению с цифрой 4); } /*Далее прописываем точно также только для следующих номеров пунктов*/

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

                                          Если в списках в статьях вы используете до 20 нумерованных пунктов, то нужно прописать псевдокласс nth-child(An) 20 раз. Так чтобы последним в стилях шел псевдокласс nth-child(20n).

                                          Найдите в файле стилей строчки, которые описывают оформление нумерованного списка (теги ol li).

                                          Допишите в него псевдокласс first-child. Скопируете и вставьте его один раз, затем измените данное свойство на nth-child(An) и скопируете столько, сколько номеров должны иметь свою иконку. Проставьте номера пунктов.

                                          Для каждого номера пропишите свойство list-style-image с собственной уникальной иконкой.

                                          Если иконки на сайте располагаются далеко от пунктов или накладываются на них, то нужно отредактировать выравнивание и отступы цифровых иконок или текста пунктов.

                                          Как оформить маркированный (ненумерованный) список?

                                          Маркированный список ul li с чередующимися иконками

                                          Мне очень понравился вот такой маркированный список

                                          Ul { padding: 11px 0 5px 0; } ul li { padding-left: 32px; margin-bottom: 10px; font: normal 15px Verdana, sans-serif; color: #2E2E2E; line-height: 1.6; border-bottom: 1px dashed #ccc; padding-bottom: 10px; } ul li:before { content: ""; position: absolute; width: 27px; height: 24px; margin-left: -35px; margin-top: -2px; background: url("images/sprite.jpg") 0px 2px no-repeat; list-style-type: circle; } ul li:nth-child(2n):before { content: ""; position: absolute; width: 27px; height: 43px; margin-left: -35px; margin-top: -2px; background: url("images/sprite.jpg") 0px -17px no-repeat; list-style-type: circle; }

                                          Можно вместо стандартного стиля list-style-type назначить свойство «путь к иконке» — list-style-image:url. Но тогда нужно прописать внешний левый отступ от краешков сайта — без него иконки не будут отображаться, уйдут за зону области контента.

                                          Для эксперимента можно назначить отступы:

                                          Ul li{ list-style-image: url(images/radio.png); margin-left: 30px; }

                                          Чередование иконок можно задать свойством nth-child(An). В приведенном примере использован псевдоэлемент before.

                                          В коде прописан один псевдокласс nth-child(2n). Его значение — 2. Получается, что каждому четному пункту соответствует другая иконка. Если вместо 2n написать 2n+1, то другая иконка будет приходиться на нечетные пункты.

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

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

                                          Как вывести на странице несколько списков с разным оформлением?

                                          Иногда нужно разместить несколько списков с разными стилями.

                                          Если назначить общие стили, то одно и то же оформление будет присвоено всем спискам. Разные списки можно вывести, если назначить тегу ol или ul отдельный id и прописать его в html режиме редактирования статьи. Ну а в файле стилей для этого id нужно прописать отдельные стили.

                                          Вот, например, один симпатичный вариант оформления содержания:

                                          В HTML вы пропишите список так:

                                            Содержание
                                          1. пункт 1
                                          2. пункт 2
                                          3. пункт 3

                                          В CSS вы пропишите стили так:

                                          Ol#sod{ padding: 0px 20px 10px 51px; margin: 0.5em 0 0em 1em; color: #2E2E2E; list-style-type: none; background: #f1f4f5; border-left: #BDC3C7 4px solid; display: inline-block; } ol#sod li{} ol#sod li:before{ font-weight:normal !important }

                                          Новый стиль отличается от основного оформлением тега ol: фоном, стилем отображения, линией слева от содержимого.

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

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

                                          Как создать ссылки-якоря в списке содержания?

                                          Как же их прописать в HTML коде? Один кусочек кода обрамляет анкор ссылки, а другой кусочек кода ставится рядом с тем местом, куда нас нужно перебросить при нажатии на ссылку.

                                            Содержание
                                          1. Заголовок 1
                                          2. Заголовок 2
                                          3. Заголовок 3

                                          А в тексте статьи нужно написать так:

                                          Заголовок 1… Заголовок 2… Заголовок 3…

                                          Может быть более опытные вебмастера меня в чем-то поправят. Я просто советую то, что попробовала на практике сама.

                                          Если у вас остались какие-то вопросы, буду рада увидеть их в комментариях.

                                          Агеева Вероника.

                                          Возможно вас еще заинтересует:

Понравилась статья? Поделиться с друзьями: