2012-04-13 8 views
3

私は、ミックスイン出力をコンテキストに基づいて2つの異なるものにしようとしています。別のセレクタ/クラスの中にネストされたミックスインを使用する

.seticon(@r,@g,@b) { 
    b { 
     background-color: rgb(@r,@g,@b); 
    } 
    &.act b { 
     .box-shadow(0 0 5px 1px rgba(@r,@g,@b,0.45)); 
    } 
    &.act.hover b { 
     background: #000; 
     .box-shadow(inset 0 0 0 3px rgb(@r,@g,@b) !important; 
    } 
} 

.nonreceivable { 
    .seticon(@r,@g,@b) { 
     b { 
      background: #000 !important; 
      .box-shadow(inset 0 0 0 2px rgb(@r,@g,@b)); 
     } 
    } 
} 

.seticon期待通りに動作しますが、.nonreceivable .seticonが動作していないよう:そうのように。これはバグですか、私は間違ったことをやっているのですか、Lessの開発者が意図したものではありませんか?どうやってこれを解決しますか?

答えて

0

nonreceivableは同じ要素または親要素に適用されますか?それが親なら、それはうまくいくはずです。それ以外の場合は、&.section

.nonreceivable { 
&.seticon(@r,@g,@b) { 
    b { 
     background: #000 !important; 
     .box-shadow(inset 0 0 0 2px rgb(@r,@g,@b)); 
    } 
} 
} 
+0

Aakashにお寄せください。これは祖先要素に適用されます。 –

+1

ミックスイン名の前に '&'をつけても、実際にはメイトは機能しません。実際にはコンパイルエラー(コンパイラの最新バージョンで少なくとも)が発生します。 – Harry

関連する問題