Как изменить цвет маркеров в списке? Оформление списков в CSS Как изменить цвет буллитов с помощью CSS.

Задача

Задать цвет маркеров в списке не изменяя цвет текста.

Решение

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

  • вкладываем тег , а уже внутрь него помещаем текст. Иными словами вместо традиционной схемы
  • текст
  • создаем конструкцию
  • текст
  • . При этом цвет маркеров определяется стилевым свойством color для селектора LI , а цвет текста — для селектора SPAN (пример 1).

    Пример 1. Использование вложенных тегов

    HTML5 CSS 2.1 IE Cr Op Sa Fx

    Цвет текста и маркеров в списке

    • Скрипка
    • Гитара
    • Волынка
    • Шарманка
    • Челеста

    Результат данного примера показан ниже (рис. 1).

    Рис. 1. Маркеры, отличающиеся по цвету от основного текста

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

    Internet Explorer Chrome Opera Safari Firefox Android iOS
    8.0+ 1.0+ 7.0+ 3.1+ 1.0+ 1.0+ 1.0+

    Смысл в следующем — убираем оригинальные маркеры списка через свойство list-style-type и добавляем свои собственные маркеры с помощью псевдоэлемента :before и свойства content . Такая связка позволяет вставлять любой текст или символ перед элементом, в данном случае LI . Причём видом текста (цвет, шрифт, фон и др.) также можно управлять через стили, что и продемонстрировано в примере 2. Здесь в качестве маркеров используется символ параграфа ¶.

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

    HTML5 CSS 2.1 IE Cr Op Sa Fx

    Цвет маркеров в списке

    • Север
    • Юг
    • Запад
    • Восток

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

    Рис. 2. Маркеры, созданные с помощью стилей

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

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

    Оформление списков с помощью CSS-стилей

    1. Тип маркера списка list-style-type

    Свойство изменяет типа маркера или удаляет маркер для маркированного и нумерованного списков. Наследуется.

    list-style-type
    Значения:
    disc Значение по умолчанию. В качестве маркера элементов списка выступает закрашенный кружок.
    armenian Традиционная армянская нумерация.
    circle В качестве маркера выступает незакрашенный кружок.
    cjk-ideographic Идеографическая нумерация.
    decimal 1, 2, 3, 4, 5, …
    decimal-leading-zero 01, 02, 03, 04, 05, …
    georgian Традиционная грузинская нумерация.
    hebrew Традиционная еврейская нумерация.
    hiragana Японская нумерация: a, i, u, e, o, …
    hiragana-iroha Японская нумерация: i, ro, ha, ni, ho, …
    katakana Японская нумерация: A, I, U, E, O, …
    katakana-iroha Японская нумерация: I, RO, HA, NI, HO, …
    lower-alpha a, b, c, d, e, …
    lower-greek Строчные символы греческого алфавита.
    lower-latin a, b, c, d, e, …
    lower-roman i, ii, iii, iv, v, …
    none Маркер отсутствует.
    square В качестве маркера выступает закрашенный или незакрашенный квадрат.
    upper-alpha A, B, C, D, E, …
    upper-latin A, B, C, D, E, …
    upper-roman I, II, III, IV, V, …
    initial Устанавливает значение свойства в значение по умолчанию.
    inherit Наследует значение свойства от родительского элемента.

    Синтаксис

    Ul {list-style-type: none;} ul {list-style-type: square;} ol {list-style-type: none;} ol {list-style-type: lower-alpha;} Рис. 1. Пример оформления маркированного и нумерованного списков

    2. Изображения для элементов списка list-style-image

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

    Синтаксис

    Ul {list-style-image: url("images/romb.png");} ul {list-style-image: linear-gradient(#FF7A2F 0, #FF7A2F 50%, #FFB214 50%);}
    Рис. 2. Оформление маркированного списка с помощью изображения
    Рис. 3. Оформление маркированного списка с помощью градиента

    3. Местоположение маркера списка list-style-position

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

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

    CSS стили списка маркера.

    list-style-type

    list-style-type: disc | circle | square | decimal | lower-roman | upper-roman | lower-alpha | upper-alpha | none ;

    Значение :

    disk – маркированный список в виде закрашенного кружка

    circle – маркированный список в виде не закрашенного кружка

    square – маркированный список в виде закрашенного квадратика

    decimal – нумерованный список арабскими числами (1,2,3 и т.д.)

    upper-roman – нумерованный список большими римскими цифрами (I,II,III,IV и т.д.)

    lower-roman – нумерованный список маленькими римскими цифрами (i,ii,iii,iv и т.д.)

    upper-alpha – нумерованный список заглавными буквами (A,B,C и т.д.)

    lower-alpha – нумерованный список строчными буквами (a,b,c и т. д.)

    none – без маркера.

    Пример :

    Свойства списков в css

    • Верь в лучшее, ожидай худшее.
    • Жизнь - это болезнь, со смертельным исходом.
    • Никогда не говори никогда.

    Результат :

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

    list-style-type: none;

    Пример :

    Свойства списков в css

    • Верь в лучшее, ожидай худшее.
    • Никогда не говори никогда.

    Результат :

    Можно обычные маркеры в списке заменить собственными изображениями. Это можно сделать с помощью свойства list-style-image .

    list-style-image

    list-style-image: url(картинка.png);

    Пример :

    Свойства списков в css

    • Верь в лучшее, ожидай худшее.
    • Жизнь - это болезнь со смертельным исходом.
    • Никогда не говори никогда.

    Результат :

    Можно также задать маркированному списку расстояние от текста. Это можно сделать с помощью свойства padding-left для селектора li.

    Пример :

    Свойства списков в css

    • Верь в лучшее, ожидай худшее.
    • Жизнь - это болезнь со смертельным исходом.
    • Никогда не говори никогда.

    Результат :

    Следующая задача состоит в том, чтобы изменить цвет маркера, но при этом не изменять цвет текста. Как это возможно сделать? Цвет маркера можно изменить, если к тесту добавить тег .
    Это выглядит вот так:

  • текст
  • Пример :

    Свойства списков в css

    • Верь в лучшее, ожидай худшее.
    • Жизнь - это болезнь со смертельным исходом.
    • Никогда не говори никогда.

    Результат :

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

    Пример :

    Свойства списков в css

    • Верь в лучшее, ожидай худшее.Пункт 1
    • Жизнь - это болезнь со смертельным исходом.Пункт 2
    • Никогда не говори никогда.Пункт 3
    • Это все что я знал. Пункт 4

    Результат :

    Вот и подошла к завершению тема .

    Задача

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

    Решение

    С помощью HTML или CSS допускается устанавливать один из трех типов маркеров: disc (точка), circle (кружок), square (квадрат). Добавлять эти значения нужно к стилевому свойству list-style-type , которое указывается для селектора UL или LI (пример 1).

    Пример 1. Стандартные маркеры

    HTML5 CSS 2.1 IE Cr Op Sa Fx

    Квадратные маркеры

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

    В данном примере в качестве маркеров используется квадрат (рис. 1).

    Рис. 1. Вид маркеров

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

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

    HTML5 CSS 2.1 IE Cr Op Sa Fx

    Символ в качестве маркера

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

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

    Рис. 2. Маркеры в виде символа

    Чтобы установить в качестве маркера какой-нибудь хитрый символ, можно воспользоваться программой Microsoft Word или таблицей символов, это стандартная программа входящая в комплект Windows. Кодировка кода должна быть обязательно UTF-8.

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

    Если проанализировать какой-либо сайт, то можно обнаружить тот факт, что в контенте очень часто присутствуют списки разного рода: меню, список товаров и т. д. В HTML-коде за нумерованный список отвечает тег , а за маркированный – .

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

    Чтобы устранить этот негативный эффект надо отменить вывод маркера, воспользовавшись свойством list-style :

    ol, ul { list- style: none; }

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

    Маркеры через картинки

    Наиболее распространенный и простой способ указать для списка маркер – это воспользоваться бекграундной картинкой (свойство background). Метод основывается на указании в таблице стилей фонового рисунка для элементов списка, а также внутренний отступ (свойство padding), который зарезервирует место для нового маркера. Ниже представлен пример кода:

    ul { list- style: none; } li{ background: url(путь- к- картинке) no- repeat; padding- left: 20px; }

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

    Главная положительная сторона этого метода заключается в 100%-ной кроссбраузерности, но, не смотря на это, есть маленький недостаток. Использование картинки – это дополнительное обращение к серверу.

    Маркеры с помощью before

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

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

    Ниже представлен пример кода, который формирует маркированный список с коротким тире:

    li{ this. innerHTML = "-" + this. innerHTML) /*хак для IE*/ } li: before{ content: "\201 3" ; }

    На практике получим такую картину:

    Напоминаю о том, что в реальных условиях хаки подключаются условными комментариями .

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

    Использование insertAdjacentHTML

    Вышеупомянутый способ не всегда корректно отрабатывает в легендарном IE (не смотря на хак). Точнее, «костыли» для этого браузера не до конца доработанные. Более действенным является метод, основанный на insertAdjacentHTML , ниже представлен код этого метода:

    li{ //z-index: expression(runtimeStyle.zIndex = 1, insertAdjacentHTML("afterBegin", "-")); }

    Маркеры, нарисованные CSS-свойствами

    Некоторые квадратные маркеры можно нарисовать с использованием некоторых CSS-свойств. К примеру, квадрат с цветной заливкой рисуется через свойство background-color , а квадратик в виде рамки – border (кстати говоря, квадрат с заливкой можно нарисовать и таким способом). Пример записи в CSS-файле:

    li{ //z-index: expression(runtimeStyle.zIndex = 1, this. innerHTML = "

    " + this. innerHTML) /* хак для ие6 и 7 */ } li: before, . listMarkerBackColor{ background- color: #539127; width: 7px; height: 7px; content: "" ; float: left; margin: 6px 6px 0 0 ; overflow: hidden; } html . listMarkerBackColor{ margin- right: 1px; /* исправляем маленткий косяк в IE6 */ }

    Таким образом рисованный CSS-свойствами маркер будет выглядеть на практике:

    Использование before и first-child в комплексе

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

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

    HTML

    < ul> < li>< a href= "#" > Главная < li>< a href= "#" > Блог < li>< a href= "#" > CSS < li> Валидный код при использовании target= "_blank"

    li: before{ content: "\21 92" ; } li: first- child: before{ content: "" ; }

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

    В каких браузерах работает?

    6.0+ 4.0+ 9.5+ 3.0+ 3.0+ - -

    Выводы

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