2016-10-28 15 views
0

以下のCSSを簡単なコードで簡略化できますか?複数のクラスと同じスタイルの疑似クラスが少ない

.push-nav > .active > a, 
.push-nav > .active > a:hover, 
.push-nav > .active > a:focus { 
    background:#000; 
    color: #fff; 
} 

私の試み:

.push-nav > .active > a { 
    &:focus, 
    &:hover { 
     background:#000; 
     color: #fff; 
    } 
} 

結果:

.push-nav > .active > a:focus, 
.push-nav > .active > a:hover { 
    background: #000; 
    color: #fff; 
} 

.push-nav > .active > aが欠落しています。

アイデア?

+3

'&、&:focus、&:hover {..}'。 – Harry

+2

あなたの[同一質問](http://stackoverflow.com/questions/40310268/less-multiple-different-classes-with-the-same-style)で@ Harryの言葉を繰り返し言えば、CSSは有効です。 hungerstarのソリューションのようにリファクタリングする特別な理由はありません。元のコードはうまくいくでしょう。 – henry

答えて

1

.push-nav > .active > aが含まれていないため、表示されません。

アンパサンド&は、現在のセレクタを表します。

追加:あなたのコード& = .push-nav > .active > a

.push-nav > .active > a { 
    &, 
    &:focus, 
    &:hover { 
     background: #00; 
     color: #fff; 
    } 
} 

。だから&:focus = .push-nav > .active > a:focus

+0

それを指摘してくれてありがとう! :-) – laukok

関連する問題