この記事では、BEM (ブロック、要素、モディファイア) 手法について詳しく説明します。これは、大規模なプロジェクト向けにクリーンで構造化された保守可能な CSS を作成するのに役立つ人気のある CSS 命名規則です。 BEM は、プロジェクトが成長してもコードのスケーラビリティを維持し、スタイルの競合の可能性を減らします。
BEM の略:
BEM 手法では、再利用可能、予測可能、保守可能な CSS コードの作成に重点が置かれています。
.block {} .block__element {} .block--modifier {}
例を使って BEM の構造を詳しく見てみましょう。
<div class="menu"> <ul class="menu__list"> <li class="menu__item menu__item--active">Home</li> <li class="menu__item">About</li> <li class="menu__item">Contact</li> </ul> </div>
この例では:
ブロックは、独立した再利用可能なコンポーネントです。これは、スタイルが他の要素の影響を受けることを気にせずに、コード内のどこにでも配置できる自己完結型のエンティティと考えてください。
.button { padding: 10px 20px; background-color: #3498db; color: white; border: none; }
ここで、.button はボタン コンポーネントのスタイルを定義するブロックです。このブロックは Web サイトの複数の部分で再利用できます。
要素は、独立した意味を持たないブロックの一部です。ブロックに関連付けられており、ブロックに関連する機能を実行するために存在します。
.button__icon { margin-right: 10px; } .button__label { font-size: 14px; }
こちら:
修飾子は、ブロックまたは要素のバリエーションを表します。モディファイアは、ボタンの色の変更や要素の拡大など、コンポーネントの外観や動作を変更するために使用されます。
.button--primary { background-color: #2ecc71; } .button--large { padding: 15px 30px; }
こちら:
修飾子は要素にも適用できます:
.button__icon--small { width: 10px; height: 10px; }
ブロック、要素、修飾子を含むより完全な例を見てみましょう:
<div class="card"> <div class="card__header"> <h2 class="card__title">Card Title</h2> </div> <div class="card__body"> <p class="card__text">This is a simple card component.</p> </div> <div class="card__footer"> <button class="button card__button card__button--primary">Read More</button> </div> </div>
/* Block */ .card { border: 1px solid #ddd; padding: 20px; border-radius: 5px; } /* Elements */ .card__header { margin-bottom: 15px; } .card__title { font-size: 18px; color: #333; } .card__body { margin-bottom: 15px; } .card__text { color: #666; } .card__footer { text-align: right; } /* Modifier */ .card__button--primary { background-color: #3498db; color: white; }
この例では:
BEM 手法は、CSS を整理し、予測可能でスケーラブルに保つための強力な方法です。コンポーネントを ブロック、要素、修飾子に分割することで、よりクリーンなコードを維持し、スタイルの競合を回避し、プロジェクトの開発をより迅速かつ効率的に行うことができます。成長します。
リドイ・ハサン
以上がCSS BEM モデル – スケーラブルで保守可能な CSS を作成するためのガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。