Тарифы Услуги Сим-карты

Маркированный список. Маркированный список Красивый маркированный список в css

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

С элементом

    связаны следующие особенности:

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

      На рис.1 показан результат примера, иллюстрирующий приведённые особенности маркированного списка.

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

      Вид маркера

      Маркеры могут принимать один из трёх видов: закрашенный кружок (по умолчанию), незакрашенный кружок и квадрат. Для выбора типа маркера используется свойство list-style-type или универсальное list-style (пример 1). Применяются следующие значения:

      • disc - маркеры в виде закрашенного кружка;
      • circle - маркеры в виде незакрашенного кружка;
      • square - квадратные маркеры.

      Пример 1. Изменение вида маркера

      Списки

      • Сепульки
      • Сепулькарии
      • Сепуление

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

    • не получится, поэтому придётся действовать в обход. Для этого прячем маркеры списка с помощью свойства list-style со значением none и в тексте перед содержимым
    • добавляем свой собственный символ с помощью псевдоэлемента ::before . В примере 2 в качестве такого маркера выступает треугольник.

      Пример 2. Использование::before

      Списки

      • Сепульки
      • Сепулькарии
      • Сепуление

      Результат данного примера показан на рис. 2. Поскольку использование свойства list-style со значением none не убирает маркеры совсем, а только скрывает их от просмотра, то список получается смещённым вправо. Чтобы избавиться от этой особенности, в примере добавляется свойство text-indent с отрицательным значением. Его задача - переместить текст левее на один символ.

      Рис. 2. Произвольные маркеры в списке

      Символ не обязательно должен быть в шестнадцатеричном формате, его можно вставить и непосредственно в текст. Главное, сохранить документ в кодировке UTF-8 и чтобы редактор её поддерживал. Сами символы и их коды можно взять, например, из LibreOffice Writer (рис. 3).

      Рис. 3. Выбор символа в LibreOffice

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

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

      Пример 3. Использование изображения в качестве маркера

      Списки

      • Сепульки
      • Сепулькарии
      • Сепуление

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

      Рис. 4. Рисунок в качестве маркера

      Применение list-style-image обладает некоторыми недостатками:

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

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

    • мы убираем исходные маркеры и устанавливаем фоновую картинку без повторения. А чтобы текст не выводился поверх рисунка, смещаем его вправо через padding-left (пример 4).

      Пример 4. Использование background

      Ul { margin-left: -1em; } li { list-style: none; background: url(images/bullet.png) no-repeat 0 2px; padding-left: 20px; }

      Положение текста и маркера

      Существует два способа размещения маркера относительно текста: маркер выносится за границу элементов списка или обтекается текстом (рис. 5).



      inside outside

      Рис. 5. Размещение маркеров относительно текста

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        CSS свойства списка позволяют вам:

        • Устанавливать различные маркеры пунктов списка для упорядоченных списков
        • Устанавливать различные маркеры пунктов списка для неупорядоченных списков
        • Устанавливать изображение в качестве маркера пункта списка

        Список

        В HTML существует два типа списков:

        • неупорядоченные списки - пункты списка помечаются маркерами
        • упорядоченные списки - пункты списка помечаются числами или буквами

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

        Различные Маркеры Пунктов Списка

        Тип маркера для пункта списка указывается с помощью свойства list-style-type:

        Некоторые значения свойства list-style-type для неупорядоченных списков, и некоторые - для упорядоченных.

        Изображение в качестве Маркера Пункта Списка

        Чтобы указать изображение в качестве маркера пункта списка, используйте свойство list-style-image:

        Пример выше не отображается одинаково вовсех браузерах. IE и Opera будут отображать маркер-изображение чуть выше, чем Firefox, Chrome, и Safari.

        Если вы хотите, чтобы изображение-маркер размещался одинаково во всех браузерах, кросс-браузерное решение объяснено ниже.

        Кросс-браузерное Решение

        Следующий пример отрисовывает изображение-маркер одинаково во всех браузерах:

        Объяснение примера:

        • Для ul:
          • Установка list-style-type в none - чтобы удалить маркер пункта списка
          • Установка свойств padding и margin в 0px (для кросс-браузерной совместимости)
        • Для li:
          • Установка адреса URL для изображения, и значения no-repeat (чтобы изображение выводилось только один раз)
          • Позиционирование изображения в желаемом месте (влево на 0px и вниз на 5px)
          • Установка левого отступа для текста в списке

        Список - Стенографическое (Сокращенное) свойство

        Также можно указать все свойства списка в одном - одиночном свойстве. Оно называется стенографическим (или сокращенным) свойством.

        Стенографическое свойство для списков - это свойство list-style:

        При использовании стенографического свойства порядок значений таков:

        • list-style-type
        • list-style-position (объяснение смотрите ниже - в таблице свойств CSS)
        • list-style-image

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

        • Изменение вида стандартного маркера для нумерованных списков
        • Установка типа маркера для маркированных списков
        • Установка изображения вместо маркера для элементов списка

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

        Изменение и удаление маркеров

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

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

        CSS Свойство:

        list-style-type:

        Результат:

        1. Кликните на значение свойства list-style-type
        2. Наблюдайте за сменой маркеров
        3. Используйте для своих списков наиболее подходящие маркеры

        Ol#myList {
        list-style-type: decimal ;
        }

        Кликните на любое значение свойства, чтобы увидеть результат

        Для маркированных списков существует всего три вида маркеров, которые можно задать с помощью значений circle, disk и squred:

        Название документа

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

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

        Название документа

        • Кофе
        • Чай
        1. Кофе
        2. Чай
        Попробовать »

        Замена маркеров картинками

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

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

        Название документа

        • Кофе
        • Чай
        1. Кофе
        2. Чай
        Попробовать »

        Отступ списка

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

        Название документа

        • Кофе
        • Чай
        1. Кофе
        2. Чай
        Попробовать »

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

      • , а просто скрываются за краем окна браузера.

        Свойство list-style-position указывает, должен ли маркер располагаться внутри или снаружи пунктов списка. Данное свойство может принимать два значения:

        • outside - маркер располагается слева от содержимого (является значением по умолчанию)
        • inside - маркер располагается внутри пункта списка вместе с содержимым

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

        Название документа

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

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

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

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

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

          html

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

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

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

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

          css

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

          html

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

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

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

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

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

          css

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

          html

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

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

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

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

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