重複を避けるためにLessでいくつかのネストされたスタイルを再利用する最良の方法を理解しようとしていますが、私は最良の方法を見つけたかどうかはわかりません。今、私は.action-link
にアウタースタイルを適用せず、セレクタ.action-link a
に、同じ内部リンクのスタイルを適用したいネストされたスタイルでアブソリュートセレクタを追加する
.category-link,
.caption-link {
background-color: @linkColour;
font-family: @linkFont;
max-width:2em;
a {
/* INNER LINK STYLES */
text-decoration:none;
white-space:nowrap;
/* ...INNER LINK STYLES CONTINUE... */
}
}
:
は今、私のようなものを持っています。
私はこのようにそれを行う場合、私は私の意図した出力を得る:任意の重複を必要としませんが、私は彼らが関連している彼らの現在の場所でこれらのスタイルを維持することを好むだろう
.inner-link-styles() {
/* INNER LINK STYLES */
text-decoration:none;
white-space:nowrap;
/* ...INNER LINK STYLES CONTINUE... */
}
.category-link,
.caption-link {
background-color: @linkColour;
font-family: @linkFont;
max-width:2em;
a {
.inner-link-styles;
}
}
.action-link a {
.inner-link-styles;
}
、それらをmixins.less
に移動し、次の開発者がトラブルシューティングを行うために複雑さを増やすよりも、
何を直感的に感じたが、明らかに間違っている、このようなものだった:
.category-link,
.caption-link {
background-color: @linkColour;
font-family: @linkFont;
max-width:2em;
& a,
.action-link a {
/* INNER LINK STYLES */
text-decoration:none;
white-space:nowrap;
/* ...INNER LINK STYLES CONTINUE... */
}
}
が、他のいくつかの私は、それは絶対に基づいて、持っているセレクタに適用することができ接頭辞ではなく、それはネストレベルだと相対があります?
私はそれはできないと思います。あなた自身が与えた解決策はただ一つです。 –
私はそのような気分を抱いていたかもしれません...私はたぶん私が少しでも慣れていれば、私はそれでゲル化しない方法でそれを使いたくないと感じています。 '.inner-link-styles()'の定義が他のより機能的なミックスインを別のファイル( 'mixins.less')に入れるべきかどうかに関する個人的な/コーディングスタイルの考え方をあなたや他の誰かが持っていますか?自分自身の別ファイル( 'reusable.less')に入れたり、実際にそれらを使うスタイルの近くに置いたりしますか? (経験に基づく自分の好みや正式に定義されたベストプラクティスかどうかにかかわらず) –
「他のより機能的なミックスインを別のファイル(mixins.less)に入れてください。絶対にない。どんなミックスインでも、あなたが所属していると感じる場所、「ミックスインはミックスイン」、「変数」の変数などのような機械的構造になっているはずです。少なくともダムと反生産的です。有名なフレームワークの特定のアプローチを盲目的にコピーすることは決してありません(現代のフレームワークのほとんどは小規模チーム(1人まで)によって設計され、多くの反パターンがあります)。 –