25
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

BEMよりもBMEがさいつよ

Last updated at Posted at 2015-11-17

BEMといえば、.block__element--modifierで有名なCSSの命名規則ですが、現実問題、.block--modifier__elementの順(BME)にした方が拡張性が高く、破綻しにくいので最強です1

論拠

1. 継承が美しい。

HTML
<!-- コンポーネントA -->
<div class="block"> ... </div>

<!-- コンポーネントAを継承したA" -->
<div class="block block--modifier"> ... </div>

<!-- Aの子孫要素 -->
<div class="block__element"> ... </div>

<!-- AとA"に共通の子孫要素 -->
<div class="block__element"> ... </div>

<!-- A"だけにある子孫要素 -->
<div class="block--modifier__element"> ... </div>

2. 子孫要素のモデファイには is の方が便利

HTML
<div class="block--modifier__element is-hide"> ... </div>

誰も.block--modifier__element--modifierなんて望みません。

3. 親要素のモデファイには is が使いづらい

HTML
<div class="block is-modified">
  <div class="block__element"> ... </div>
</div>

上記では、A"だけにある子孫要素なのかどうかを知る方法がありません。

結論

ということで、BEMよりもBMEがさいつよ。

証明終わり

  1. ここではelementは子要素だけに限定せず、子孫要素とします。(つまり.block--modifier__element__elementの様にはなりません)

25
25
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?