🟦
CSSにおけるBEMで二重アンダースコア(__)を使用する理由
BEMで要素名を表す際に二重アンダースコア(__)を使用する理由は以下の通りです:
-
明確な区別:
二重アンダースコアを使用することで、ブロック名と要素名を明確に区別できます。これにより、クラス名の可読性が向上します。 -
単一アンダースコアとの混同を防ぐ:
ブロック名に単一アンダースコアが使用されている場合(例:main_nav)、要素名との区別が難しくなります。二重アンダースコアを使用することで、この問題を解決できます。 -
修飾子との区別:
BEMでは、修飾子を表すために単一アンダースコア(_)を使用することがあります。二重アンダースコアを要素に使用することで、修飾子との混同を避けられます。 -
命名規則の一貫性:
BEMの公式ドキュメントでは、要素名をブロック名から分離するために二重アンダースコアを使用することが推奨されています。これにより、BEMを使用するプロジェクト間で一貫性が保たれます。 -
深い階層の表現を避ける:
BEMでは要素の要素を作成することは推奨されていません。二重アンダースコアを使用することで、不必要に深い階層を表現することを避けられます。
例えば:
.main-nav__list /* 正しい */
.main-nav_list /* 避けるべき */
.main-nav__link--active /* 正しい */
.main-nav_link-active /* 避けるべき */
これらの理由により、BEMでは要素名を表す際に二重アンダースコア(__)を使用することが一般的です。この規則を採用することで、クラス名の意味がより明確になり、コードの可読性と保守性が向上します。
Discussion