我有關於BEM結構的問題。混合元素/修飾符在語義上是否正確?我有一個英雄和投資組合模塊。我想在hero模塊中使用portfolio__item,但它應該使用hero__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'。擴展(我使用sass)從'portfolio__item'到'hero__item - portfolio'的樣式是最好的方法嗎? –
如果你使用LESS/SASS,你可以創建一個像.virtual-1這樣的通用虛擬類,並使用它擴展另一個類,如: .hero - collage {0} {0} {0} {0} .virtual-1; //定製樣式 } .portfolio__item { .virtual-1; //定製樣式 } –
感謝您的評論,我瞭解擴展。但很多人不推薦使用擴展。但在這種情況下,我認爲沒關係,因爲幾乎所有的類都是在BEM結構下的根級。 –