きれいで整理された CSS を書くことは、特に大規模なプロジェクトの場合に重要です。 CSS を構造化する最良の方法の 1 つは、BEM 命名規則を使用することです。この記事では、BEM とは何か、BEM が重要な理由、長所と短所を説明し、2 つの例を使用して BEM の使用方法を示します。
BEM は、ブロック、要素、およびモディファイアを表します。これは、コードの理解と保守を容易にする CSS クラス名を記述するための命名システムです。 BEM の主な目標は、開発者が再利用可能でモジュール式でスケーラブルな CSS を作成できるようにすることです。
1. Block: それ自体で意味をなすスタンドアロン コンポーネント (ボタンやフォームなど)。
2.要素: 単独では意味を持たず、ブロックに依存するブロックの一部(ボタンアイコンなど)。
3.修飾子: ブロックまたは要素の異なるバージョン (例: 異なる色のボタン)。
.block {} .block__element {} .block--modifier {}
BEM を使用すると、乱雑で混乱を招く CSS を避けることができます。それはいくつかの利点をもたらします:
基本的なボタン ブロックから始めて、BEM がどのように機能するかを見てみましょう。
HTML:
CSS:
.button { padding: 10px 20px; background-color: #333; color: white; border: none; } .button--primary { background-color: blue; }
説明:
次に、タイトルと説明 (要素) と小さいサイズのバージョン (修飾子) を含むカード ブロックを作成しましょう。
HTML:
Title
This is a description.
CSS:
.card { padding: 20px; border: 1px solid #ddd; background-color: #f9f9f9; } .card__title { font-size: 18px; margin-bottom: 10px; } .card__description { font-size: 14px; color: #666; } .card--small { padding: 10px; }
説明:
1. 整理と一貫性: CSS をクリーンで適切な構造に保つのに役立ちます。
2. CSS の競合を回避します: あるコンポーネントのスタイルが別のコンポーネントに影響を与えるリスクを軽減します。
3. 再利用性: ブロックと要素はプロジェクト内の複数の場所で使用できます。
4. メンテナンスが簡単: プロジェクトが成長しても、CSS の更新と管理が簡単になります。
1. 長いクラス名: BEM クラス名は非常に長い場合があり、最初は圧倒されるように思えるかもしれません。
2. 学習曲線: 特に CSS を初めて使用する場合は、BEM 構造に慣れるまでに時間がかかります。
BEM は、クリーンでスケーラブルなコードを促進するため、人気のある CSS 手法です。大規模なプロジェクトでは、CSS の管理がすぐに困難になる可能性があります。 BEM では、各クラス名は一意でわかりやすいため、各クラスの目的が理解しやすくなります。また、スタイルの競合などの問題も防止され、開発者間のコラボレーションがよりスムーズになります。
CSS を一貫したモジュール形式で記述したい場合は、BEM が最適です。 習得には時間がかかるかもしれませんが、長期的には時間を節約して CSS を作成できるようになります。より保守しやすくなります。
BEM 命名規則は、CSS を整理してスケーラブルに保つための優れた方法です。これは競合を回避し、コードをより保守しやすくし、コンポーネントの再利用を促進します。長いクラス名と学習曲線のため、最初は難しそうに見えるかもしれませんが、利点は欠点をはるかに上回ります。よりクリーンな CSS を記述してプロジェクトのコラボレーションを改善したい場合は、BEM を試してみてください!
この記事が CSS BEM 命名規則を理解するのに役立つことを願っています。このような記事、ヒント、Web 開発に関する洞察などの最新情報を入手したい場合は、必ず私をフォローしてください。ご質問やご提案がございましたら、お気軽にお問い合わせください。ぜひご意見をお待ちしております!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3