Есть ли простой способ изменить цвет пули в списке?


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

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

16 81

16 ответов:

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

оберните текст списка в промежуток:

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

затем слегка измените правила стиля:

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

мне удалось это без добавления разметки, но вместо этого с помощью li:before. Это, очевидно, имеет все ограничения :before (нет старой поддержки IE), но, похоже, он работает с IE8, Firefox и Chrome после очень ограниченного тестирования. Он работает в нашей среде контроллера, интересно, может ли кто-нибудь проверить это. Стиль пули также ограничен тем, что находится в юникоде.

<!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:'22';
      /* For a square bullet */
      /*content:'A0';*/
      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>

Это было невозможно в 2008 году, но это становится возможным в ближайшее время (надеюсь)!

по данным спецификация W3C CSS3, вы можете иметь полный контроль над любым числом, глифом или другим символом, созданным перед элементом списка с помощью ::marker псевдо-элемент. Чтобы применить это к решению самого проголосовавшего ответа:

<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

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

Если вы хотите эту функцию, сделайте это:

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

большая проблема с этим методом является дополнительной разметки. (тег span)

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

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

Usign это определение CSS:

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

а это html код:

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

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

<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>

просто сделайте пулю в графической программе и используйте list-style-image:

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

оберните текст внутри элемента списка с помощью диапазона (или какого-либо другого элемента) и примените цвет маркера к элементу списка и цвет текста к диапазону.

по состоянию на W3C spec,

свойства списка ... не позволяют авторам определять стиль (цвета, шрифты, выравнивание и т. д.) для маркера списка ...

но идея с промежутком внутри списка выше должна работать нормально!

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

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

вот простой пример:

$("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
});

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

если вы хотите использовать внешние библиотеки,Font Awesome дает вам масштабируемые векторные иконки, а в сочетании с вспомогательные классы Bootstrap (напр. text-success), вы можете сделать некоторые довольно прохладно и настраиваемые списки.

я расширил выдержку из шрифт удивительным список примеров страница ниже:

использовать fa-ul и fa-li чтобы легко заменить пули по умолчанию в неупорядоченных списках.

<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>

Шрифт Удивительным (в основном) поддерживает IE8, и поддерживает только IE7, если вы используете старая версия 3.2.1.

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

<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;
}

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

следуйте примеру по адресу http://www.echoecho.com/csslists.htm.

<ul style="color: red;">
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
  • один
  • два
  • три
  • просто используйте CSS:

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

    вы хотите установить "список-стиль" с помощью CSS, и дать ему цвет: значение. Пример:

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