web-dev-qa-db-ja.com

CSS-id内のクラスを選択する構文

クラス名を介してid内のタグを選択するセレクター構文は何ですか?たとえば、内側の「li」を赤にするには、以下を選択する必要がありますか?

<html>
<head>
    <style type="text/css">
        #navigation li
        {
            color: green;
        }

        #navigation li .navigationLevel2
        {
            color: red;
        }
    </style>
</head>
<body>
    <ul id="navigation">
        <li>Level 1 item
            <ul class="navigationLevel2">
                <li>Level 2 item</li>
            </ul>
        </li>
    </ul>
</body>
</html>
69
Jeremy
#navigation .navigationLevel2 li
{
    color: #f00;
}
82
John Sheehan

これも機能し、追加のクラスは必要ありません。

#navigation li li {}

LIの第3レベルがある場合、上記のセレクターから継承するスタイルの一部をリセット/オーバーライドする必要がある場合があります。次のように第3レベルをターゲットにできます。

#navigation li li li {}
6
Andy Ford
.navigationLevel2 li { color: #aa0000 }
1
Galen

2つのオプションがあります。最終的に作業が少なくなるため、navigationAltオプションの方が好きです。

<html>

<head>
  <style type="text/css">
    #navigation li {
      color: green;
    }
    #navigation li .navigationLevel2 {
      color: red;
    }
    #navigationAlt {
      color: green;
    }
    #navigationAlt ul {
      color: red;
    }
  </style>
</head>

<body>
  <ul id="navigation">
    <li>Level 1 item
      <ul>
        <li class="navigationLevel2">Level 2 item</li>
      </ul>
    </li>
  </ul>
  <ul id="navigationAlt">
    <li>Level 1 item
      <ul>
        <li>Level 2 item</li>
      </ul>
    </li>
  </ul>
</body>

</html>
1
Jason