Маркированный список css свой маркер. CSS Design: Укрощение списков

Приветствую вас на своем блоге. Сегодня я хотел бы затронуть тему, как через css у маркированных пунктов списка (ul li) убрать маркеры, потому что они зачастую не нужны и только мешают оформлять сайт.

Убираем маркеры по умолчанию

Иногда нужно просто убрать их. Например, при оформлении меню или чего-то другого. За отображение маркеров отвечает свойство list-style-type или сокращенное list-style . Значением по умолчанию выступает circle , то есть черный закрашенный кружочек. Чтобы убрать его, всего лишь нужно написать так:

Ul{
List-style-type: none;
}

Ul{
List-style: none;
}

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

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

Как поставить свою картинку маркера

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

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

С элементом

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

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

      На рис.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. Размещение маркеров относительно текста

      Свойство list-style-type устанавливает вид маркера. Вот таблица допустимых значений для этого свойства:

      Значение Пример
      disc
      • Пункт списка
      circle
      • Пункт списка
      square
      • Пункт списка
      decimal
      • Пункт списка
      decimal-leading-zero
      • Пункт списка
      lower-roman
      • Пункт списка
      upper-roman
      • Пункт списка
      lower-alpha
      • Пункт списка
      upper-alpha
      • Пункт списка
      georgian
      • Пункт списка
      • Пункт списка
      • Пункт списка
      cjk-ideographic
      • Пункт списка
      • Пункт списка
      • Пункт списка
      none
      • Пункт списка

      В таблице я указал два весьма необычных свойства: georgian и cjk-ideographic . Эти свойства используются регионально. Есть ещё несколько похожих любопытных значений этого свойства, например armenian или hiragana , но все их перечислять нет смысла.

      Теперь пример использования этого свойства:

      Свойство list-style-type.

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

      Обратите внимание, мы превратили нумерованный список

        в маркированный.

        Рисунок 1. Свойство list-style-type.

        Обязательно обратите внимание на значение none , это значение убирает маркеры вообще. Это свойство часто используется для форматирования списков при помощи CSS.

        Свойство list-style-type достаточно простое, как и остальные свойства по работе со списками.

        Свойство list-style-image устанавливает символом маркера графический файл.

        Свойство list-style-image..gif"); } </style> </head> <body> <!-- Yandex.Metrika counter --> <script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(93396025, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/93396025" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> <ul> <li>Первый пункт.</li> <li>Второй пункт.</li> <li>Третий пункт.</li> </ul> </body> </html> </p><p>Вот результат работы этого кода:</p> <img src='https://i2.wp.com/komotoz.ru/uroki/css/example/images/lists_2.png' height="190" width="374" loading=lazy> Рисунок 2. Свойство list-style-image. <p>Мы видим, что теперь маркеры списка отмечены графическим файлом .</p> <h2>Свойство list-style-position</h2> <p>Перед тем, как приступить к изучению этого свойства, более детально изучим модель форматирования элемента <ul> .</p><p> <!DOCTYPE html> <html> <head> <title>Форматируем список.

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

        Вот что мы видим:

        Рисунок 3. Форматируем блок
          .

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

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

            Форматируем список.

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

            Вот что мы получим:

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

              Теперь маркеры списка вышли за пределы контейнера

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

                Лучше бы поместить их внутрь контейнера

              • . Это бы решило данную проблему. Вот для этого и существует свойство list-style-position .

                Свойство list-style-position устанавливает положение маркера относительно блока

              • . Это свойство имеет два значения:

                По умолчания используется значение outside .

                Применим это свойство к нашему примеру и поместим маркеры в блок

              • , установив этому свойству значение inside .

                Свойство list-style-position.

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

                Вот что мы получили:

                Рисунок 5. Свойство list-style-position.

                Теперь маркеры списка вложены в блок

              • .

                Свойство list-style

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

                Пример: сделаем картинку маркером и поместим маркер внутрь блока пункта списка.

                Свойство list-style.

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

                Вот результат:

                Рисунок 6. Свойство list-style.

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

                Свойство list-style используют чаще всего, даже для задания одного значения. Оно короткое, его легко написать.

                Рецепты CSS по теме

                • Как сделать ниспадающее меню на CSS , сложный пример с тенями.

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

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

                    Ну а если в голове и так свежо тогда начнем!

                    Вид маркера в списке.

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

                    Значения list-style-type:

                    • disc - Диск. (по умолчанию для
                        )
                      • circle - Полый круг.
                      • square - Квадрат.
                      • decimal - Арабские цифры. (по умолчанию для
                          )
                        1. lower-roman - Строчные римские цифры.
                        2. lower-alpha - Строчные буквы.
                        3. upper-roman - Заглавные римские цифры.
                        4. upper-alpha - Заглавные буквы.
                        5. none - Маркер отсутствует.




                      Вид маркера в списке



                      • Пункт 1.
                      • Пункт 2.
                      • Пункт 3 (особенный).


                      • Пункт 1.
                      • Пункт 2.
                      • Пункт 3.


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

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

                      Эту задачу выполняет свойство list-style-image которое определяет в качестве маркера списка некое графическое изображение с указанием пути к нему.

                      Значений данного свойства всего два:

                      • none - Отменяет графическое изображение маркера.
                      • url - Путь к файлу с рисунком маркера.

                      Путь к рисунку после url указывается в круглых скобках.

                      Такая запись будет говорить о том, что рядом с документом есть папка graphics в которой лежит файлик-рисунок: " " - под названьем marker.gif

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




                      Нестандартный маркер-рисунок



                      • Первый любимый пункт.
                      • Второй любимый пункт.
                      • И не менее любимый третий пункт.


                      Стиль обтекания маркера списком.

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

                      Возможных значений свойства list-style-position всего два:

                      • outside - Маркер находится в стороне от списка.(по умолчанию)
                      • inside - Маркер обтекается текстом.

                      Пример для наглядности:




                      Обтекание маркера текстом




                      Здесь маркер обтекается текстом:








                      А здесь нет:



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



                      list-style

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

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

                      Если в голове остались какие то пробелы можете вернуться и перечитать.




                      Стиль списка




                      • - Этот список использует в качестве маркера рисунок.
                      • - Текст этого списка обтекает маркер.



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

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