HTMLリストの箇条書きの色を変更しますか?


86

リスト内の箇条書きの色を薄い灰色に変更できるようにするだけです。デフォルトは黒で、変更方法がわかりません。

画像を使用できることはわかっています。私がそれを助けることができれば、私はむしろそれをしたくありません。


私は自分で画像を使用して、余分なマークアップを避けます。それはおそらくより効率的な解決策です
Sam Murray-Sutton

8
このような「余分な」マークアップを気にする人は...真剣に、あなたはそれをしても何も失うことはありません。

回答:


159

弾丸はテキストからその色を取得します。したがって、リスト内のテキストとは異なる色の箇条書きが必要な場合は、マークアップを追加する必要があります。

リストテキストをスパンでラップします。

<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 */
}

まさに私が必要としていたものです!リンクのリストがありますが、リンクにはすでに異なる色のスタイルが適用されています。
デイブヘインズ

これは、これを行うための最良の方法ではありません。たとえば、WYSIWYGエディタを使用している場合、これは機能しません。<span>要素はレンダリングされません。:beforeと:afterを操作して、弾丸自体を除外することをお勧めします。これは実際には非常に悪い習慣です。
Automagisch 2014

2
@KoenHoutman、これが書かれたとき(2008)、それは合理的なサポートを備えた唯一のテクニックでした。今日でもそれは悪い習慣ではなく、ブラウザを最も広くサポートする手法ですが、今日(ほとんどの場合):before、以下のマークの回答のように使用することを選択することに同意します。
プレスタウル2014

テキストの表示を変更するだけなので、bタグの方が適切です。
Supuhstar 2014

45

マークアップを追加せずにこれを管理しましたが、代わりにli:beforeを使用しました。これには明らかにすべての制限があります:before(古いIEサポートはありません)が、いくつかの非常に限られたテストの後、IE8、Firefox、およびChromeで動作するようです。コントローラー環境で動作していて、誰かがこれをチェックできるかどうか疑問に思っています。箇条書きのスタイルは、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>

これが受け入れ答えに比べ、CSS3でよりmoern方法です
minni

17

これは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年7月現在、このソリューションはW3Cワーキングドラフトの一部にすぎず、主要なブラウザではまだ機能しない。

この機能が必要な場合は、次のようにします。


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

この方法の大きな問題は、余分なマークアップです。(スパンタグ)


テキストの表示を変更するだけなので、bタグの方が適切です。
Supuhstar 2014

1
これが書かれたとき、bタグは強力なタグを支持して非推奨にされていました。しかし、はい、あなたは正しいです、今abタグがより適切でしょう。
Jonathan Arkell 2015年

3

こんにちは多分この答えは遅いですが、これを達成するための正しいものです。

実は、LIstテキストを通常の黒(または取得したいもの)にするために、内部タグを指定する必要があります。ただし、CSSを使用して任意のタグと内部タグを再定義できることも事実です。したがって、これを行うための最良の方法は、再定義にSHORTERタグを使用することです。

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

<span>を使用する必要があります。また、<b>は非推奨です。
the_drow 2013年

2
@the_drowの対位法、<b>は非推奨ではありません。stackoverflow.com/questions/1348683/...
Strixy

特定のセレクターに適用されるデフォルトの色を設定すると、問題が修正されました。このヒントをありがとう。
デビッド

2

グラフィックプログラムで弾丸を実行して使用するだけですlist-style-image

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

1
OPは明らかに写真を使いたくありませんでしたが、私は弾丸を置き換える一般的な方法を探してこれに出くわしました。ですから、この答えは完全を期すのに良いと思います。
ゼーン2013年

ここで一つは容易に色付けすることができるSVGサークル、を有するものである:list-style-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ccircle cx='256' cy='256' r='256' fill='#ff0000' /%3E%3C/svg%3E");
Ciantic

0

リストアイテム内のテキストをスパン(またはその他の要素)でラップし、箇条書きの色をリストアイテムに適用し、テキストの色をスパンに適用します。


0

W3C仕様に従って、

リストのプロパティ...作成者がリストマーカーに個別のスタイル(色、フォント、配置など)を指定することはできません...

しかし、上記のリスト内にスパンがあるアイデアはうまくいくはずです!


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

0

ページがたくさんあり、マークアップを自分で編集する必要がない場合は、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
});

0

2008年の質問では、リスト内の箇条書きの色を変更する方法について、より最近の最新の回答を追加する可能性があると思いました。

外部ライブラリを使用する場合は、Font Awesomeでスケーラブルなベクターアイコンを使用できます。Bootstrapのヘルパークラス(例text-success)と組み合わせると、非常にクールでカスタマイズ可能なリストを作成できます。

以下のFontAwesomeリストの例のページからの抜粋を拡張しました。

を使用fa-ulfa-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>

Font Awesomeは(ほとんど)IE8をサポートし、古いバージョン3.2.1を使用する場合にのみIE7をサポートします。


0

たとえば、各要素に色を設定すると、同様に機能します。左にマージンを追加しました。

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

-1

これを達成するためにCSSを使用できます。選択した色とスタイルでリストを指定することにより、テキストを別の色として指定することもできます。

http://www.echoecho.com/csslists.htmの例に従ってください


-1
<ul style="color: red;">
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
  • 1


  • -5

    CSSを介して「リストスタイル」を設定し、それにcolor:valueを指定することをお勧めします。例:

    ul.colored {list-style: color: green;}
    
    弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
    Licensed under cc by-sa 3.0 with attribution required.