Как изменить цвет маркера списка html

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

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

Использование <span>

Внутрь каждого элемента <li> вкладываем <span>, а уже внутрь него помещаем текст. Иными словами вместо традиционной схемы

<li>текст</li>

создаем конструкцию

<li><span>текст</span></li>

При этом цвет маркеров определяется стилевым свойством color для селектора li, а цвет текста — для селектора span (пример 1).

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

<!DOCTYPE html>
<html>
<head>
<meta charset=»utf-8″>
<title>Цвет текста и маркеров в списке</title>
<style>
li {
color: red; /* Цвет маркеров */
}
li span {
color: green; /* Цвет текста */
}
</style>
</head>
<body>
<ul>
<li><span>Скрипка</span></li>
<li><span>Гитара</span></li>
<li><span>Волынка</span></li>
<li><span>Шарманка</span></li>
<li><span>Челеста</span></li>
</ul>
</body>
</html>

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

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

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

Несмотря на простоту, метод неудобен, особенно при объёмных списках, ведь к каждому пункту списка теперь придётся добавлять <span>.

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

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

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

<!DOCTYPE html>
<html>
<head>
<meta charset=»utf-8″>
<title>Цвет маркеров в списке</title>
<style>
li {
list-style-type: none; /* Прячем исходные маркеры */
}
li::before {
color: red; /* Цвет маркера */
content: «▪»; /* Сам маркер */
padding-right: 10px; /* Расстояние от маркера до текста */
}
</style>
</head>
<body>
<ul>
<li>Север</li>
<li>Юг</li>
<li>Запад</li>
<li>Восток</li>
</ul>
</body>
</html>

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

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

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

См. также

All I want is to be able to change the color of a bullet in a list to a light gray. It defaults to black, and I can’t figure out how to change it.

I know I could just use an image; I’d rather not do that if I can help it.

Awais's user avatar

Awais

4,7003 gold badges15 silver badges38 bronze badges

asked Sep 16, 2008 at 20:23

Dave Haynes's user avatar

2

The bullet gets its color from the text. So if you want to have a different color bullet than text in your list you’ll have to add some markup.

Wrap the list text in a span:

<ul>
  <li><span>item #1</span></li>
  <li><span>item #2</span></li>
  <li><span>item #3</span></li>
</ul>

Then modify your style rules slightly:

li {
  color: red; /* bullet color */
}
li span {
  color: black; /* text color */
}

doublesharp's user avatar

doublesharp

26.4k6 gold badges51 silver badges73 bronze badges

answered Sep 16, 2008 at 20:28

Prestaul's user avatar

PrestaulPrestaul

82.5k10 gold badges84 silver badges84 bronze badges

4

I managed this without adding markup, but instead using li:before. This obviously has all the limitations of :before (no old IE support), but it seems to work with IE8, Firefox and Chrome after some very limited testing. It’s working in our controller environment, wondering if anyone could check this. The bullet style is also limited by what’s in unicode.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <style type="text/css">
    li {
      list-style: none;
    }

    li:before {
      /* For a round bullet */
      content:'2022';
      /* For a square bullet */
      /*content:'25A0';*/
      display: block;
      position: relative;
      max-width: 0px;
      max-height: 0px;
      left: -10px;
      top: -0px;
      color: green;
      font-size: 20px;
    }
  </style>
</head>

<body>
  <ul>
    <li>foo</li>
    <li>bar</li>
  </ul>
</body>
</html>

Tim Cooper's user avatar

Tim Cooper

156k38 gold badges325 silver badges276 bronze badges

answered Nov 26, 2010 at 21:14

Marc's user avatar

MarcMarc

3,2233 gold badges23 silver badges26 bronze badges

1

This was impossible in 2008, but it’s becoming possible soon (hopefully)!

According to The W3C CSS3 specification, you can have full control over any number, glyph, or other symbol generated before a list item with the ::marker pseudo-element.
To apply this to the most voted answer’s solution:

<ul>
  <li>item #1</li>
  <li>item #2</li>
  <li>item #3</li>
</ul>

li::marker {
  color: red; /* bullet color */
}
li {
  color: black /* text color */
}

JSFiddle Example

Note, though, that as of July 2016, this solution is only a part of the W3C Working Draft and does not work in any major browsers, yet.

If you want this feature, do these:

  • Blink (Chrome, Opera, Vivaldi, Yandex, etc.): star Chromium’s issue
  • Gecko (Firefox, Iceweasel, etc.): Click «(vote)» on this bug
  • Trident (IE, Windows web views): Click «I can too» under «X User(s) can reproduce this bug»
    Trident development has ceased
  • EdgeHTML (MS Edge, Windows web views, Windows Modern apps): Click «Vote» on this prpopsal
  • Webkit (Safari, Steam, WebOS, etc.): CC yourself to this bug

answered Apr 16, 2013 at 15:10

Ky -'s user avatar

Ky —Ky —

30.2k48 gold badges187 silver badges302 bronze badges

<ul>
  <li style="color: #888;"><span style="color: #000">test</span></li>
</ul>

the big problem with this method is the extra markup. (the span tag)

answered Sep 16, 2008 at 20:27

Jonathan Arkell's user avatar

Jonathan ArkellJonathan Arkell

10.4k2 gold badges24 silver badges32 bronze badges

2

Hello maybe this answer is late but is the correct one to achieve this.

Ok the fact is that you must specify an internal tag to make the LIst text be on the usual black (or what ever you want to get it). But is also true that you can REDEFINE any TAGS and internal tags with CSS. So the best way to do this use a SHORTER tag for the redefinition

Usign this CSS definition:

li { color: red; }
li b { color: black; font_weight: normal; }
.c1 { color: red; }
.c2 { color: blue; }
.c3 { color: green; }

And this html code:

<ul>
<li><b>Text 1</b></li>
<li><b>Text 2</b></li>
<li><b>Text 3</b></li>
</ul>

You get required result. Also you can make each disc diferent color:

<ul>
    <li class="c1"><b>Text 1</b></li>
    <li class="c2"><b>Text 2</b></li>
    <li class="c3"><b>Text 3</b></li>
 </ul>

answered Jul 5, 2009 at 6:21

3

Just do a bullet in a graphics program and use list-style-image:

ul {
  list-style-image:url('gray-bullet.gif');
}

answered Apr 19, 2012 at 22:11

ghr's user avatar

ghrghr

6474 silver badges16 bronze badges

2

Wrap the text within the list item with a span (or some other element) and apply the bullet color to the list item and the text color to the span.

answered Sep 16, 2008 at 20:27

As per W3C spec,

The list properties … do not allow authors to specify distinct style (colors, fonts, alignment, etc.) for the list marker …

But the idea with a span inside the list above should work fine!

answered Sep 16, 2008 at 20:29

Aeon's user avatar

AeonAeon

6,4575 gold badges29 silver badges30 bronze badges

<ul>
<li style="color:#ddd;"><span style="color:#000;">List Item</span></li>
</ul>

answered Sep 16, 2008 at 20:34

You can use Jquery if you have lots of pages and don’t need to go and edit the markup your self.

here is a simple example:

$("li").each(function(){
var content = $(this).html();
var myDiv = $("<div />")
myDiv.css("color", "red"); //color of text.
myDiv.html(content);
$(this).html(myDiv).css("color", "yellow"); //color of bullet
});

answered Jan 5, 2013 at 20:34

alaasdk's user avatar

alaasdkalaasdk

1,96719 silver badges21 bronze badges

For a 2008 question, I thought I might add a more recent and up-to-date answer on how you could go about changing the colour of bullets in a list.

If you are willing to use external libraries, Font Awesome gives you scalable vector icons, and when combined with Bootstrap’s helper classes (eg. text-success), you can make some pretty cool and customisable lists.

I have expanded on the extract from the Font Awesome list examples page below:

Use fa-ul and fa-li to easily replace default bullets in unordered lists.

<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />

<ul class="fa-ul">
  <li><i class="fa-li fa fa-circle"></i>List icons</li>
  <li><i class="fa-li fa fa-check-square text-success"></i>can be used</li>
  <li><i class="fa-li fa fa-spinner fa-spin text-primary"></i>as bullets</li>
  <li><i class="fa-li fa fa-square text-danger"></i>in lists</li>
</ul>

Font Awesome (mostly) supports IE8, and only supports IE7 if you use the older version 3.2.1.

answered Nov 25, 2015 at 3:47

eggy's user avatar

eggyeggy

2,8263 gold badges23 silver badges37 bronze badges

It works as well if we set color for each elements for example:
I added some Margin to left now.

<article class="event-item">
    <p>Black text here</p>
</article>

.event-item{
    list-style-type: disc;
    display: list-item;
    color: #ff6f9a;
     margin-left: 25px;
}
.event-item p {
    margin: 0;
    color: initial;
}

answered Jun 15, 2017 at 12:57

Mohammed's user avatar

MohammedMohammed

3903 silver badges7 bronze badges

You could use CSS to attain this. By specifying the list in the color and style of your choice, you can then also specify the text as a different color.

Follow the example at http://www.echoecho.com/csslists.htm.

answered Sep 16, 2008 at 20:53

<ul style="color: red;">
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
  • One
  • Two
  • Three
  • Lou Franco's user avatar

    Lou Franco

    87.3k14 gold badges134 silver badges191 bronze badges

    answered Sep 16, 2008 at 20:29

    NerdFury's user avatar

    NerdFuryNerdFury

    18.6k5 gold badges38 silver badges41 bronze badges

    Just use CSS:

    <li style='color:#e0e0e0'>something</li>
    

    answered Sep 16, 2008 at 20:28

    Diodeus - James MacFarlane's user avatar

    1

    You’ll want to set a «list-style» via CSS, and give it a color: value. Example:

    ul.colored {list-style: color: green;}
    

    Tim Cooper's user avatar

    Tim Cooper

    156k38 gold badges325 silver badges276 bronze badges

    answered Sep 16, 2008 at 20:28

    ahockley's user avatar

    ahockleyahockley

    3,69624 silver badges26 bronze badges

    Как изменить маркер списка

    Как изменить маркер списка

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

    Давайте рассмотрим на примере, что я имею ввиду.

    HTML разметка базового маркированного списка:


    <ul>
      <li>Анжелика</li>
      <li>Анастасия</li>
      <li>Анатолий</li>
      <li>Александр</li>
    </ul>

    На странице, вы увидите следующее.

    Как изменить маркер списка.

    Как верстают меню навигации без точек? Просто в стилях прописывают следующую строчку.


    ul {
      list-style: none;
    }

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

    Меняем цвет маркера списка (1-ый способ)

    Удалим дефолтные черные точки.


    ul {
      list-style: none;
    }

    А взамен, поставим другие точки, поставив псевдоэлемент before перед всеми пунктами списка. Вместо точек, добавим значение свойства content «2022» , это CSS код точки, взятый из таблицы Юникода. Дальше к этим точкам, можно применять нужные стили.


    ul li::before {
      content: "2022"; /* юникод точки */
      color: orange; /* Менять цвет */
      font-weight: bold; /* Менять жирность */
      display: inline-block; /* Расстояние между точкой и текстом */
      width: 1em; /* Задать значение расстояния */
    }

    Пример с заменой цвета маркеров списка

    Как изменить маркер списка.

    Меняем цвет маркера списка (2-ой способ)

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


    <ul>
      <li><span>☑</span>Анжелика</li>
      <li><span>☑</span>Анастасия</li>
      <li><span>☑</span>Анатолий</li>
      <li><span>☑</span>Александр</li>
    </ul>

    CSS-код


    ul {
      list-style: none;
    }

    span {
      color: cyan;
      font-weight: bold;
      display: inline-block;
      width: 1em;
      font-size: 20px;
    }

    Как изменить маркер списка.

    Второй способ изменения маркера списка, мне понравился больше. Он позволяет увеличить размер маркера (font-size), не задевая межстрочный интервал, чего нельзя сказать о первом способе.

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

    Как изменить маркер списка.

    Символы вместо иконок

    На сегодняшний день, самый легкий способ вставки иконки-гамбургера в меню сайта – это вставка символа Юникода Trigram for Heaven — ☰.


    <a href="#">☰</a>

    Если вы нашли в таблице Юникода, нужный символ, то для вставки его на сайт, не нужно подключать библиотеку Font Awesome.

    Вместо маркера картинка

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


    ul {
      list-style: none;
    }
    ul li {
      background: url(images/icon_star.gif) no-repeat 0 5px;
    }

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

    Альтернативный способ:


    ul {
      list-style-image: url(images/icon_star.gif);
    }

    Для внедрения символов Юникода, кодировка страницы должна быть обязательно UTF-8.

    В HTML файле:


    <meta charset="utf-8"/>

    В отдельном CSS файле:


    @charset 'utf-8';

    Если вы только присматриваетесь к профессии верстальщика, то наиболее оптимальным решением будет, начинать своё обучение с верстки лендингов, начните с этого видеокурса «О создании лендинга под ключ».

    • Создано 28.11.2018 10:13:07


    • Михаил Русаков

    Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:

      Она выглядит вот так: Как создать свой сайт

    2. Текстовая ссылка:

      Она выглядит вот так: Как создать свой сайт

    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

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

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

    • нумерованный (упорядоченный) список – HTML элемент <ol>
    • маркированный (неупорядоченные) список – HTML элемент <ul>

    CSS предоставляет нам широкие возможности форматирования внешнего вида этих списков, давайте рассмотрим основные из них.

    Изменение типа маркера

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

    Меню навигации, к примеру, часто составляется из обычных маркированных списков (HTML элемент <ul>), по умолчанию маркер которых, отображается в форме закрашенного круга, чтобы его убрать необходимо, воспользоваться CSS свойством list-style-type со значением none:

    ul {
    list-style-type : none; /* убираем маркер у списка */
    }
    

    Для маркированных (неупорядоченных) списков (HTML элемент <ul>) предусмотрено три типа маркеров: в форме закрашенного кружка (disc — это значение по умолчанию), маркер в форме полого круга (сircle) и в форме квадрата (square), а для нумерованных (упорядоченных) списков (элемент <ol>) все оставшиеся варианты. Полный перечень размещен в следующей таблице:

    Значение Описание
    none

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Маркер не отображается.
    disc

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Маркер в форме закрашенного кружка. Это значение по умолчанию.
    armenian

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Числовой маркер (традиционная Армянская нумерация).
    circle

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Маркер в форме круга.
    cjk-ideographic

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Простые идеографические числа.
    decimal

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Числовой маркер (десятеричные арабские числа, начинающихся с 1).
    decimal-leading-zero

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Числовой маркер (десятеричные арабские числа, начинающихся с 1 и дополненные начальным нулем — 01, 02, 03…).
    georgian

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Числовой маркер (традиционная Грузинская нумерация — an, ban, gan, …, he, tan, in, in-an…).
    hebrew

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Числовой маркер (традиционная Еврейская нумерация.).
    hiragana

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Числовой маркер (японская слоговая азбука Хирагана — a, i, u, e, o, ka, ki…).
    hiragana-iroha

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Числовой маркер (японская слоговая азбука Хирагана ироха — i, ro, ha, ni, ho, he, to, …).
    katakana

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Числовой маркер (японская слоговая азбука Катакана — A, I, U, E, O, KA, KI, …).
    katakana-iroha

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Числовой маркер (японская слоговая азбука Катакана ироха — I, RO, HA, NI, HO, HE, TO, …).
    lower-alpha

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Буквы ascii нижнего регистра (a, b, c, d…z).
    lower-greek

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Строчные греческие буквы (α, β, γ, δ, и т.д.).
    lower-latin

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Строчные латинские буквы (a, b, c, d,…z).
    lower-roman

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Римские числа в нижнем регистре (i, ii, iii, iv, v и т.д.).
    square

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Маркер в форме квадрата.
    upper-alpha

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Буквы ascii верхнего регистра (A, B, C, D,…Z).
    upper-latin

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Заглавные латинские буквы (A, B, C, D,…Z).
    upper-roman

    • Элемент списка
    • Элемент списка
    • Элемент списка
    Римские цифры в верхнем регистре (I, II, III, IV, V и т.д.).

    Обращаю Ваше внимание, что значения hebrew, cjk-ideographic, hiragana, hiragana-iroha, katakana, katakana-iroha не поддерживаются браузером Internet Explorer.


    Давайте рассмотрим пример использования свойства list-style-type в тексте:

    <!DOCTYPE html>
    <html>
    <head>
    	<title>Пример использования свойства list-style-type</title>
    <style> 
    .test {
    list-style-type : lower-roman; /* устанавливаем тип маркера - римские числа в нижнем регистре  */
    color : orange; /* обратите внимание, что текст цвета соответствует цвету маркера */
    }
    .test2 {
    list-style-type : circle; /* устанавливаем тип маркера в форме круга */
    color : IndianRed; /* обратите внимание, что текст цвета соответствует цвету маркера */
    }
    </style>
    </head>
    	<body>
    		<ul> /* список со значением типа маркера по умолчанию (disc).  */
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    		</ul> 
    		<ol class = "test"> /* нумерованный список с типом маркера lower-roman  */
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    		</ol>
    		<ul class = "test2"> /* маркированный список с типом маркера circle  */
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    		</ul>
    	</body>
    </html>
    

    В данном примере мы создали два стиля, первый устанавливает тип маркера — римские числа в нижнем регистре (значение lower-roman), мы его применили к нумерованном списку (HTML элемент <ol>), а к маркированному списку (HTML элемент <ul>) мы применили стиль, который устанавливает тип маркера в форме полого круга (значение circle).

    Результат нашего примера:

    Рис. 69 Пример использования свойства list-style-type (установка типа маркера).

    Рис. 69 Пример использования свойства list-style-type (установка типа маркера).

    Обращаю Ваше внимание, что вы можете применить свойство list-style-type даже к отдельно взятому элементу списка (HTML элемент <li>), чтобы установить свой тип маркера, либо создать стили, которые будет применять определённый маркер к чётным, либо нечетным элементам списка, как рассмотрено в следующем примере:

    <!DOCTYPE html>
    <html>
    <head>
    	<title>Пример чередования стилей свойства list-style-type</title>
    <style> 
    li:nth-child(even) { /* четное чередование стиля */
    list-style-type : none;
    color : red;
    }
    li:nth-child(odd) { /* нечетное чередование стиля */
    list-style-type : square;
    color : green;
    }
    </style>
    </head>
    	<body>
    		<ul>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    		</ul>
    	</body>
    </html>
    

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

    Результат нашего примера:

    Рис. 70 Пример чередования стилей свойства list-style-type.

    Рис. 70 Пример чередования стилей свойства list-style-type.

    Расположение маркера относительно элемента списка

    С помощью CSS свойства list-style-position вы можете определить расположение маркера, либо цифры относительно элемента списка. Для того, чтобы расположить маркер (цифру) внутри элемента списка вместе с содержимым, то необходимо использовать значение inside, а для того, чтобы расположить за границей элемента списка необходимо использовать значение outside.

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

    <!DOCTYPE html>
    <html>
    <head>
    	<title>Пример использования свойства list-style-position</title>
    <style> 
    li {
    border : 1px solid orange; /* устанавливаем сплошную границу размером 1px оранжевого цвета для всех элементов списка*/
    }
    .test {
    list-style-position : outside; /* указываем, что маркер располагается слева от текста за границей элемента списка */
    background-color : khaki; /* устанавливаем цвет заднего фона */
    }
    .test2 {
    list-style-position : inside; /* указываем, что маркер располагается слева от текста внутри элемента вместе с содержимым */
    background-color : khaki; /* устанавливаем цвет заднего фона */
    }
    </style>
    </head>
    	<body>
    		<ul class = "test">
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    		</ul>
    		<ol class = "test2">
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    		</ol>
    	</body>
    </html>
    

    В данном примере для маркированного списка (HTML элемент <ul>) мы расположили маркер внутри элемента списка вместе с содержимым, использовав свойство list-style-position со значение outside, а для нумерованного списка (HTML элемент <ol>) разместили цифру слева от текста внутри элемента вместе с содержимым (свойство list-style-position со значение inside).

    Универсальное свойство border, которое позволяет установить границу для всех элементов списка, мы использовали для лучшего понимания работы свойства list-style-position. Работа с границами элементов в скором времени будет подробно рассмотрена в учебнике в статье «Границы элемента в CSS».

    Результат нашего примера:

    Рис.71 Пример использования свойства list-style-position (расположение маркера / цифры в списках).

    Рис. 71 Пример использования свойства list-style-position (расположение маркера / цифры в списках).

    Создание собственных маркеров

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

    Синтаксис свойства следующий:

    ol {
    list-style-image : url('images/primer.png'); /* указываем относительный путь к изображению */
    }
    ul {
    list-style-image : url('http://basicweb.ru/images/mini5.png'); /* указываем абсолютный путь к изображению */
    }
    

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


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


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

    <!DOCTYPE html>
    <html>
    <head>
    	<title>Пример использования CSS свойства list-style-image</title>
    .test {
    list-style-image : url('http://basicweb.ru/images/mini5.png'); /* указываем абсолютный путь к изображению, которое будет использовано в качестве маркера */
    }
    </style>
    </head>
    	<body>
    		<ul class = "test">
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    		</ul>
    	</body>
    </html>
    

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

    Результат нашего примера:

    Рис. 72 Пример использования CSS свойства list-style-image (использование изображения в качестве маркера).

    Рис. 72 Пример использования CSS свойства list-style-image (использование изображения в качестве маркера).

    Изменение цвета маркера в CSS

    В завершении этой статьи давайте рассмотрим продвинутый способ изменения цвета маркера без изменения цвета элемента, с использованием CSS свойства content и ранее рассмотренного псевдоэлемента :before:

    <!DOCTYPE html>
    <html>
    <head>
    	<title>Пример изменения цвета маркера</title>
    <style> 
    ul {
    list-style : none; /* убираем маркеры у маркированного списка */
    }
    li:before {/* Псевдоэлемент :before добавляет содержимое, указанное в свойстве content перед каждым элементом <li> */
    content : "•"; /* вставляем содержимое, которое выглядит как маркер */
    padding-right : 10px; /* устанавливаем правый внутренний отступ элемента. */
    color : orange; /* устанавливаем цвет шрифта */
    }
    </style>
    </head>
    	<body>
    		<ul>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    			<li>Элемент списка</li>
    		</ul>
    	</body>
    </html>
    

    Суть этого способа заключается в том, что мы перед каждым элементом списка (HTML элемент <li>) вставляем псевдоэлементом (:before) сгенерированный контент (CSS свойство content), который идентичен по внешнему виду маркеру в маркированном списке (HTML элемент <ul>), только уже необходимого для нашей задачи цвета.

    Обращаю Ваше внимание, что в данном примере использовано свойство padding-right, которое нам позволило сделать внутренний отступ справа в каждом элементе списка (HTML элемент <li>). Если в данном случае не применять это свойство, то маркер будет находится в упор к тексту, что зрительно некрасиво.
    Работа с внутренними и внешними отступами элементов будет подробно рассмотрена в следующей статье учебника «Блочная и строчная модель в CSS».

    Рис. 73 Пример изменения цвета маркера с использованием свойства content и псевдоэлемента :before

    Рис. 73 Пример изменения цвета маркера с использованием свойства content и псевдоэлемента :before.


    Вопросы и задачи по теме

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

    • Для выполнения задания вам понадобится скачать архив и скопировать содержимое архива (два HTML файла и изображение) в любую папку на вашем жестком диске:
    • Используя полученные знания составьте следующие HTML страницы:
      Практическое задание № 18.
      Практическое задание № 18.
      Продвинутое задание:
      Практическое задание № 19.
      Практическое задание № 19.

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

    Пользовательские маркеры с помощью CSS ::marker

    От автора: теперь легко настроить цвет, размер или тип числа или маркера при использовании <ul> или <ol>. Благодаря Igalia, спонсируемой Bloomberg, мы наконец-то можем убрать хаки для стилей списков. Судите сами!

    Пользовательские маркеры с помощью CSS ::marker

    Благодаря CSS ::marker мы можем изменять содержимое и некоторые стили маркеров и чисел.

    Совместимость с браузерами

    Когда выйдет Chromium 86, ::marker будет поддерживаться в Firefox для настольных компьютеров и Android, Safari для настольных ПК и iOS Safari, а также в браузерах для настольных ПК и Android на базе Chromium. См. обновления в таблице совместимости браузеров MDN.

    Псевдо-элементы

    Рассмотрим следующий маркированный список HTML:

    Практический курс по верстке адаптивного сайта с нуля!

    Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3

    Узнать подробнее

    <ul>

      <li>Lorem ipsum dolor sit amet consectetur adipisicing elit</li>

      <li>Dolores quaerat illo totam porro</li>

      <li>Quidem aliquid perferendis voluptates</li>

      <li>Ipsa adipisci fugit assumenda dicta voluptates nihil reprehenderit consequatur alias facilis rem</li>

      <li>Fuga</li>

    </ul>

    В результате получается следующий неожиданный рендеринг:

    Точка в начале каждого элемента li является произвольной! Браузер рисует и создает за вас сгенерированную рамку маркера.

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

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

    Создание маркера

    Блок псевдо-элемента маркера ::marker автоматически создается внутри каждого элемента списка перед фактическим содержимым и псевдо-элементом ::before.

    li::before {

      content: «::before»;

      background: lightgray;

      border-radius: 1ch;

      padding-inline: 1ch;

      margin-inline-end: 1ch;

    }

    Обычно элементы списка являются элементами HTML li, но другие элементы также могут стать элементами списка с помощью display: list-item.

    <dl>

      <dt>Lorem</dt>

      <dd>Lorem ipsum dolor sit amet consectetur adipisicing elit</dd>

      <dd>Dolores quaerat illo totam porro</dd>

      <dt>Ipsum</dt>

      <dd>Quidem aliquid perferendis voluptates</dd>

    </dl>

    dd {

      display: list-item;

      list-style-type: «your smile»;

      padding-inline-start: 1ch;

    }

    Стилизация маркера

    До ::marker списки не могли быть стилизованы с помощью list-style-type и list-style-image, чтобы изменить символ элемента списка с помощью 1 строки CSS:

    li {

      list-style-image: url(/right-arrow.svg);

      /* OR */

      list-style-type: ‘your icon’;

      padding-inline-start: 1ch;

    }

    Это удобно, но нам нужно больше. А как насчет изменения цвета, размера, интервала и т. д.!? Вот где на помощь приходит ::marker. Он позволяет индивидуально и глобально выбирать эти псевдо-элементы из CSS:

    li::marker {

      color: hotpink;

    }

    li:first-child::marker {

      font-size: 5rem;

    }

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

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

    Допустимые свойства CSS для ::marker

    animation-*

    Практический курс по верстке адаптивного сайта с нуля!

    Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3

    Узнать подробнее

    transition-*

    color

    direction

    font-*

    content

    unicode-bidi

    white-space

    Изменение содержимого ::marker выполняется с помощью content вместо list-style-type. В следующем примере для первого элемента используется стиль list-style-type, а для второго — ::marker. Свойства в первом случае применяются ко всему элементу списка, а не только к маркеру, что означает, что текст анимируется так же, как и маркер. При использовании ::marker мы можем выбирать только блок маркера, а не текст.

    Также обратите внимание на то, что отключенное свойство background не действует.

    Стили списков

    li:nth-child(1) {

      list-style-type: ‘?’;

      font-size: 2rem;

      background: hsl(200 20% 88%);

      animation: color-change 3s ease-in-out infinite;

    }

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

    li:nth-child(2)::marker {

      content: ‘!’;

      font-size: 2rem;

      background: hsl(200 20% 88%);

      animation: color-change 3s ease-in-out infinite;

    }

    Проблемы!

    В Chromium white-space работает только с внутренними маркерами. Для маркеров, расположенных снаружи регулятор стиля всегда задает white-space: pre, чтобы сохранить свободное пространство.

    Изменение содержимого маркера

    Вот несколько способов стилизации маркеров.

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

    li {

      list-style-type: «smile»;

    }

    /* OR */

    li::marker {

      content: «smile»;

    }

    Изменение только одного маркера списка

    li:last-child::marker {

      content: «smile»;

    }

    Замена маркера списка на SVG

    li::marker {

      content: url(/heart.svg);

      content: url(#heart);

      content: url(«data:image/svg+xml;charset=UTF-8,<svg xmlns=’//www.w3.org/2000/svg’ version=’1.1′ height=’24’ width=’24’><path d=’M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z’ fill=’none’ stroke=’hotpink’ stroke-width=’3’/></svg>»);

    }

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

    А что насчет ol? Маркер в элементе нумерованного списка по умолчанию является числом, а не маркером. В CSS они называются счетчиками, и они довольно мощные. У них даже есть свойства для установки и сброса в начале и в конце числа или переключения их на римские цифры. Можем ли мы это стилизовать? Да, и мы даже можем использовать значение содержимого маркера для создания собственного представления нумерации.

    li::marker {

      content: counter(listitem) «› «;

      color: hotpink;

    }

    Отладка

    Chrome DevTools готов помочь вам проверить, отладить и изменить стили, применяемые к псевдо-элементам ::marker.

    Пользовательские маркеры с помощью CSS ::marker

    Автор: Adam Argyle, Oriol Brufau

    Источник: //web.dev

    Редакция: Команда webformyself.

    Практический курс по верстке адаптивного сайта с нуля!

    Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3

    Узнать подробнее

    Верстка. Быстрый старт

    Практический курс по верстке адаптивного сайта с нуля!

    Смотреть

    Improve Article

    Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Given an unordered lists (UL) of bullets, we need to change the color of the bullets in the list using CSS.

    Note: It is not allowed to use any images or span tags.

    First of all, there is not direct way in CSS by which we can change the color of the bullets in an unordered list. However, to change the color of the bullets in an unordered list using CSS, we will have to first discard the default list-style and manually define the content that comes before each list item of the list.

    This content is the Unicode of the kind of bullet that you want to use for your list. The Unicode characters for different bullet styles are as follows:

    • Square: "25AA"
    • Circle: "2022"
    • Disc: "2022"

    Below is a sample CSS code that removes the default style from an Unordered List in HTML and use unicodes:

    ul{

        list-style: none

    }

    ul li::before {

       content: ;  

       color: green

       display: inline-block

       width: 1em

       margin-left: -0.9em

    }

    Below programs illustrate the above approach of changing colours of list item bullets:

    Example 1:

    <html>

       <head>

            <title>Changing Bullet Colors</title>

            <style>

                h3{

                    color:green;

                }

                ul{

                    list-style: none;

                }

                ul li::before {

                    /* 2022 is the CSS Code/unicode for a disc */

                    content: "2022";  

                    color: green; 

                    display: inline-block; 

                    width: 1em;

                    margin-left: -0.9em;

                    font-weight: bold;

                    font-size:1.1rem;

                }

            </style>

      </head>

      <body>

        <h3>Geek Movies</h3>

        <ul>

            <li>Star Wars</li>

            <li>Back to the future</li>

            <li>Ghostbusters</li>

            <li>The princess bride</li>

            <li>Shaun of the dead</li>

        </ul>

      </body>

    </html>

    Output:

    Example 2:

    <html>

       <head>

            <title>Changing Bullet Colors</title>

            <style>

                h3{

                    color:green;

                }

                ul{

                    list-style: none;

                }

                ul li::before {

                    /*25E6 is the CSS Code/unicode for a circle */

                    content: "25E6";  

                    color: green; 

                    display: inline-block; 

                    width: 1em;

                    margin-left: -0.9em;

                    font-weight: bold;

                    font-size:1.1rem;

                }

            </style>

      </head>

      <body>

        <h3>Geek Movies</h3>

        <ul>

            <li>Star Wars</li>

            <li>Back to the future</li>

            <li>Ghostbusters</li>

            <li>The princess bride</li>

            <li>Shaun of the dead</li>

        </ul>

      </body>

    </html>

    Output:

    Example 3:

    <html>

       <head>

            <title>Changing Bullet Colors</title>

            <style>

                h3{

                    color:green;

                }

                ul{

                    list-style: none;

                }

                ul li::before {

                    /* 25AA is the CSS Code/unicode for a square */

                    content: "25AA";  

                    color: green; 

                    display: inline-block; 

                    width: 1em;

                    margin-left: -0.9em;

                    font-weight: bold;

                    font-size:1.1rem;

                }

            </style>

      </head>

      <body>

        <h3>Geek Movies</h3>

        <ul>

            <li>Star Wars</li>

            <li>Back to the future</li>

            <li>Ghostbusters</li>

            <li>The princess bride</li>

            <li>Shaun of the dead</li>

        </ul>

      </body>

    </html>

    Output:

    Improve Article

    Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Given an unordered lists (UL) of bullets, we need to change the color of the bullets in the list using CSS.

    Note: It is not allowed to use any images or span tags.

    First of all, there is not direct way in CSS by which we can change the color of the bullets in an unordered list. However, to change the color of the bullets in an unordered list using CSS, we will have to first discard the default list-style and manually define the content that comes before each list item of the list.

    This content is the Unicode of the kind of bullet that you want to use for your list. The Unicode characters for different bullet styles are as follows:

    • Square: "25AA"
    • Circle: "2022"
    • Disc: "2022"

    Below is a sample CSS code that removes the default style from an Unordered List in HTML and use unicodes:

    ul{

        list-style: none

    }

    ul li::before {

       content: ;  

       color: green

       display: inline-block

       width: 1em

       margin-left: -0.9em

    }

    Below programs illustrate the above approach of changing colours of list item bullets:

    Example 1:

    <html>

       <head>

            <title>Changing Bullet Colors</title>

            <style>

                h3{

                    color:green;

                }

                ul{

                    list-style: none;

                }

                ul li::before {

                    /* 2022 is the CSS Code/unicode for a disc */

                    content: "2022";  

                    color: green; 

                    display: inline-block; 

                    width: 1em;

                    margin-left: -0.9em;

                    font-weight: bold;

                    font-size:1.1rem;

                }

            </style>

      </head>

      <body>

        <h3>Geek Movies</h3>

        <ul>

            <li>Star Wars</li>

            <li>Back to the future</li>

            <li>Ghostbusters</li>

            <li>The princess bride</li>

            <li>Shaun of the dead</li>

        </ul>

      </body>

    </html>

    Output:

    Example 2:

    <html>

       <head>

            <title>Changing Bullet Colors</title>

            <style>

                h3{

                    color:green;

                }

                ul{

                    list-style: none;

                }

                ul li::before {

                    /*25E6 is the CSS Code/unicode for a circle */

                    content: "25E6";  

                    color: green; 

                    display: inline-block; 

                    width: 1em;

                    margin-left: -0.9em;

                    font-weight: bold;

                    font-size:1.1rem;

                }

            </style>

      </head>

      <body>

        <h3>Geek Movies</h3>

        <ul>

            <li>Star Wars</li>

            <li>Back to the future</li>

            <li>Ghostbusters</li>

            <li>The princess bride</li>

            <li>Shaun of the dead</li>

        </ul>

      </body>

    </html>

    Output:

    Example 3:

    <html>

       <head>

            <title>Changing Bullet Colors</title>

            <style>

                h3{

                    color:green;

                }

                ul{

                    list-style: none;

                }

                ul li::before {

                    /* 25AA is the CSS Code/unicode for a square */

                    content: "25AA";  

                    color: green; 

                    display: inline-block; 

                    width: 1em;

                    margin-left: -0.9em;

                    font-weight: bold;

                    font-size:1.1rem;

                }

            </style>

      </head>

      <body>

        <h3>Geek Movies</h3>

        <ul>

            <li>Star Wars</li>

            <li>Back to the future</li>

            <li>Ghostbusters</li>

            <li>The princess bride</li>

            <li>Shaun of the dead</li>

        </ul>

      </body>

    </html>

    Output:

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

    Читайте также:

  • Как изменить цвет маркера списка css
  • Как изменить цвет майки на все майки
  • Как изменить цвет люминофора
  • Как изменить цвет лица после пьянки
  • Как изменить цвет линии детализации ревит

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии