私のチームと私は、BEM っぽいものを実装し始めました (この記事を出発点として使用しました)。私がこれまでに読んだことは理にかなっているようです。私が頭を抱えている大きな問題の 1 つは、変更されたコンポーネントの子のスタイルを設定する方法です。
たとえば、.avatar
コンポーネント.avatar--alternate
/修飾子があるとします。おそらく、代替の背景は白ではなく黒です。代替の見出しのスタイルを設定するために使用する CSS セレクターとは何ですか?またその理由は?
ここにシナリオを配置しました:
<div class="avatar">
<h2 class="avatar-heading">Lorem ipsum...</h2>
</div>
<div class="avatar avatar--dark">
<h2 class="avatar-heading">Lorem ipsum...</h2>
</div>
// _typography.scss
h1 {
color: #000;
}
// _avatar.scss
.avatar {
background: #fff;
}
.avatar--dark {
background: #000;
}
.avatar-heading {
color: #222;
}
// option A
.avatar--dark {
.avatar-heading {
color: #fff;
}
}
// option B
.avatar-heading--dark {
color: #fff;
}
// option C?
私の腸は、これが見出しをスタイルする最も具体的な方法ではなく、最も「スケーラブル」または「将来性」があるように見えるので、私に B と言っています。一方、A は非常に説得力があります。なぜなら、私.avatar-subHeading
も同様の可能性を持っている可能性があり、場合によってはいくつかの段落があり、その場合、分類 (?) に苦しみ始める可能性があるからです (例<h1 class="avatar-heading avatar-heading--dark">
)