2009-07-16 8 views
54

id内のタグをクラス名で選択するセレクタ構文は何ですか?例えば、内側の「li」を赤にするために、以下で選択する必要があるのは何ですか?CSS - id内のクラスを選択する構文

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

答えて

67
#navigation .navigationLevel2 li 
{ 
    color: #f00; 
} 
+0

に不要なセレクタがあります。 – Galen

+0

私は不必要なことを意味しました! – Galen

+8

表示されている例がすべてマークアップの場合のみです。ご存じのように、必要なマークアップはもっと複雑です。私は与えられた情報から私の答えに基づいていました。 –

1
.navigationLevel2 li { color: #aa0000 } 
+0

これは、不要なli:sに適用せずにこのトリックを行う場合、セレクタの数が少なく、より高速なので、これはやり方です。少なくともGoogleのページパフォーマンスのアドバイスによると、 – PatrikAkerstrand

0

ここでは、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>

5

これも動作しますし、あなたが余分なクラスは必要ありません:あなたの場合

#navigation li li {} 

をLIの3番目のレベルがあります。上記のセレクタから継承するスタイルの一部をリセット/オーバーライドする必要があるかもしれません。

#navigation li li li {} 
関連する問題