2012-01-06 13 views
4

私はCSSのドロップダウンに取り組んでいます。私はクラスactiveを追加して、特定の項目が現在の選択項目であることを示すためにドロップダウンリストの要素をリストに追加したいと考えています。問題は、テキストの色を変更することができないということです。背景はありませんが、テキストではなく...ネストされた要素をスタイルするための適切なCSS

enter image description here

デモ:http://jsfiddle.net/tMND4/4/

HTML:

<ul class="dropdown"> 
    <li> 
     <a href="#">Nice test items</a> 
     <ul class="submenu"> 
       <li><a href="#">Sonic Screwdriver</a></li> 
       <li class="active"><a href="#">TARDIS</a></li> 
       <li><a href="#">Long Scarf</a></li> 
     </ul> 
    </li> 
</ul> 

CSS:

body{ 
    padding:10px; 
} 

.dropdown > li{ 
    width:200px; /*or anything you want!*/ 
    color:#333; 
    text-decoration:none; 
    padding:2px; /*all things wont stick to the side */ 
} 

.dropdown li a{ 
    display:block; 
    color:#666; 
    text-decoration:none; 
    padding:5px; /*line it up with sublinks */ 
} 

.dropdown li .submenu{ 
    display:none; /*hide submenu*/ 
} 
/* child selector to prevent style propagation*/ 
.dropdown > li:hover{ 
    border:1px solid #666; 
} 

/* child selector to prevent style propagation*/ 
.dropdown > li:hover a { 
    padding: 4px; /*reduced padding to compensate for border*/ 
} 

.dropdown li:hover .submenu{ 
    display:block; /*display submenu*/ 
} 

.dropdown li:hover .submenu a{ 
    display:block; 
    padding:5px; /*line it up with links */ 
} 

.dropdown li:hover .submenu a:hover{ 
    background: #DDD; 
} 

.active{ 
    background:#666; 
    color:#FFF; 
} 

答えて

3

これは特異性によるものです。あなたは.activeセレクターでより具体的にする必要があります。例えば

:このhttp://jsfiddle.net/tMND4/5/

0

.active { 
    color:#FFF; 
} 

あなたが適用されるため:

.dropdown li a{ 
    color:#666; 
} 

この切り札ここ

.dropdown li.active a { 
    background:#666; 
    color:#FFF; 
} 

はあなたのフィドルです!これはそれを修正することがラッピングLIではなく、A.

から:!それは `使用しなくても動作しないでしょう

.dropdown li.active a { 
    color:#FFF; 
} 
+0

は – henryaaron

+0

は再び、' important'は通常、間違った答えであるimportant'。なぜ私はそれ以上の時間を費やすことなく動作しないのか分かりません。これが、あなたのCSSでいくつかの異なるレベルの特異性を持つことが頭痛になる理由です。 –

関連する問題