BEM命名法の基本原則は以下の通りです:
-
ブロック (Block): ウェブページの構造を表すコンポーネントの単位です。例えば、ヘッダーやフッターなどがブロックとなります。ブロックは一意の名前を持ち、クラス名は単語間をハイフンで繋ぎます。例えば、
header
やfooter
です。 -
要素 (Element): ブロック内の独立した部品を表します。例えば、ヘッダー内のロゴやナビゲーションが要素となります。要素はブロック名にアンダースコアを付けた形で表現されます。例えば、
header_logo
やheader_navigation
です。 -
修飾子 (Modifier): 要素やブロックの外観や状態を変化させる際に使用されます。例えば、ボタンの色やサイズの変更などが修飾子となります。修飾子は要素名やブロック名に二重のハイフンを使って表現します。例えば、
button--primary
やheader_logo--large
です。
BEM命名法の利点は、コンポーネントの構造と意味を明確にすることで、他の開発者がコードを理解しやすくすることです。また、スタイルの変更や再利用性の向上にも役立ちます。
以下にBEM命名法を使用したコード例を示します:
HTML:
<div class="header">
<img class="header__logo" src="logo.png" alt="Logo">
<nav class="header__navigation">
<a class="header__navigation-link" href="#">Home</a>
<a class="header__navigation-link" href="#">About</a>
<a class="header__navigation-link" href="#">Contact</a>
</nav>
</div>
CSS:
.header {
/* ブロックのスタイル */
}
.header__logo {
/* ロゴのスタイル */
}
.header__navigation {
/* ナビゲーションのスタイル */
}
.header__navigation-link {
/* ナビゲーションリンクのスタイル */
}
このようにBEM命名法を適用することで、各要素や修飾子の関係性が明確になり、コードの保守性が向上します。また、他の開発者がコンポーネントを理解しやすくなるため、共同開発やチームでの作業にも適しています。
以上がBEM命名法の基本と効果的な使い方についての解説です。この命名法を使用することで、コードの品質と可読性を向上させ、効率的なウェブ開発を行うことができます。