箇条書きマークでランキングを表現したい

最終更新日

ランキングなどを表示する場合に、先頭に順位がわかるようなアイコンをつけたいときや<li>など同じ要素が連続するときに、個別に別々のスタイルを適用したいときの解説をしています。

箇条書き(<ol>)に含まれる<li>の先頭に、リストマークの代わりに背景画像を表示します。ただし、すべてのリスト項目に同じ背景画像を表示するのではなく、1番目から3番目までの<li>に、それぞれ別の画像を適用します。リスト項目の3番目まで、上から順に異なる背景画像を指定するために「:nth-child(n)」セレクタを使用しています。このセレクタは、「:」より前で選択される要素のうち、「()」内の番号の順番に出てくるものだけを選択して、スタイルを適用します。たとえば、セレクタが「.rank li:nth-child()1」であれば<ol class=”rank”>に含まれる<li>のうち、1番目に出てくる要素だけが選択されます。

<!DOCTYPE html>
<html lang="ja">
<head>
    <title>サンプル</title>
    <style>
      .rank{
        margin:0;
        padding:0;
      }
      .rank li{
        padding:5px 0 20px 55px;
        list-style: none;
        background-color: #f30;
        line-height: 50px;
      }
      .rank li:nth-child(1){
        background:url(./images/crown1.png) no-repeat;
      }
      .rank li:nth-child(2){
        background:url(./images/crown2.png) no-repeat;
      }
      .rank li:nth-child(3){
        background:url(./images/crown3.png) no-repeat;
      }
    </style>
</head>
<body>
   <h2>今週の人気メニュー</h2>
   <ul class="rank">
        <li>エビフライ定食</li>
        <li>ハンバーグ定食</li>
        <li>らーめん</li>
    </ul>
</body>
</html>

実行結果