BEMの構造に関する質問があります。要素/修飾子を組み合わせるのは意味上正しいですか?私はヒーローとポートフォリオモジュールを持っています。ヒーローモジュールでportfolio__itemを使用したいのですが、hero__itemの基本スタイルを使用する必要があります。これを行う正しい方法ですか、これらの要素を混在させることは許されていますか?私はあなたがhero
ブロック内portfolio__item
要素を配置するとします - - それは良いことではありませんBEM css - 要素/修飾子の組み合わせ
<section class="hero hero--collage hero--bottom-decoration">
<div class="portfolio__item hero__item hero__item--animated">
<a href="http://www.google.nl">
<div class="hero__hover">
<span class="hero__hover__content h1">Hover title</span>
</div>
<img src="http://www.google.nl" class="hero__image">
</a>
</div>
</section>
<section class="portfolio">
<div class="portfolio__item">
<a href="http://www.google.nl">
<img src="http://www.google.nl" class="hero__image">
</a>
</div>
</section>
'portfolio__item'が'英雄とほぼ同じスタイルを持っている - コラージュhero__item'。だから、重複したCSSを避けるために、私は 'hero-collage'の中で' portfolio__item'を使うことができると思っていました。 'portfolio_item'から' hero__item - portfolio'までのスタイリングを(私は嫌なことに)使っています。 –
LESS/SASSを使用する場合、.virtual-1のような一般的な仮想クラスを作成し、別のクラスを次のように拡張することができます。 .hero - collage { .virtual-1; //カスタムスタイル } .portfolio__item { .virtual-1; //カスタムスタイル } –
コメントをいただき、ありがとうございました。しかし、多くの人が拡張を使用することをお勧めしません。しかし、このケースでは、BEM構造のため、ほぼすべてのクラスがルートレベルにあるので、これは問題ありません。 –