私は要素を持っていて.shake
、それ:hover
がアニメーションを開始するときです。シェイク要素のプロパティとそのアニメーション:hover
効果を継承する必要があります。
私が持っている
.inherit-shake {
.shake;
}
主要なプロパティ.inherit-shake
を継承するだけでアニメーションを継承するため、機能しません。.shake
:hover
Lessを使用してそれを行う方法はありますか?
私は要素を持っていて.shake
、それ:hover
がアニメーションを開始するときです。シェイク要素のプロパティとそのアニメーション:hover
効果を継承する必要があります。
私が持っている
.inherit-shake {
.shake;
}
主要なプロパティ.inherit-shake
を継承するだけでアニメーションを継承するため、機能しません。.shake
:hover
Lessを使用してそれを行う方法はありますか?
.shake
とのルール.shake:hover
が以下のスニペットのように記述されている場合、現在のコードはそのまま機能するはずです。
.inherit-shake {.shake;}
.shake{
a:a;
&:hover{b:b;}
}
ただし、以下のように書かれていると思いますが、それがルールがセレクター:hover
に適用されない理由です。.inherit-shape
.inherit-shake {.shake;}
.shake{a:a;}
.shake:hover{b:b;}
最善の解決策は、最初のスニペットで言及されているモデルを使用することです。ただし、何らかの理由でソース mixin を変更できない場合は、以下のスニペットのようにキーワードを使用してextend
関数を使用するのが最善です。all
.inherit-shake {&:extend(.shake all);}
.shake{a:a;}
.shake:hover{b:b;}
関数内のall
キーワードは、 が に適用されるものと同じプロパティextend
を取得することを確認します。コンパイルされた CSS 出力は次のようになります。.inherit-shake:hover
.shake:hover
.shake, .inherit-shake {a: a;}
.shake:hover, .inherit-shake:hover {b: b;}
関数を使用する追加の利点は、extend
セレクターが自動的にグループ化されることです (上記の出力のように)。