初心者のためのBEM
3518 ワード
プログラミングにおけるネーミングはプログラミングではなくCSSでも簡単ではない.一部のプログラマは、多くの思考を命名しないでください.彼らは、各クラスが持つべき名前を選ぶのに十分な時間がないと言います.それは本当かもしれません、しかし、低品質コードは長期的に発展するためにかなり長くかかります.したがって、名前の問題を解決する方法はいくつかあります.私たちは、BEMがどのようなものであるか、そして、このポストであなたのCSSコードを手配するためにそれを使う方法をより深く見ます.
BEMはブロック、要素、修飾子を表します.これは、CSSのネーミングコンベンションのクリーナーと読みやすいCSSクラスを書くためです.
また、あなたのプロジェクトで後でそれらを再利用するために独立したCSSブロックを書くことを目指します.
ブロックは独立していて、再利用可能で、通常、ウェブページのより大きな構成要素です.修飾子を持ち、要素を含めることができます.
ブロックの例としてWebページのようなヘッダー、nav、セクション、フォーム、記事、脇、フッターの大きな部分を数えることができます.
例えば、LinkedInのヘッダーナビゲーションをブロックとして使用することができます.
要素はブロックの子です.要素は1つの親ブロックを持つことができ、独立してそのブロックの外側で使用することはできません.LinkedInヘッダー要素の例は以下の通りです.
要素の名前は親ブロックの名前から始めなければなりません.
クラスの異なる状態やスタイルは修飾子で表されます.これらは、ブロックだけでなく、要素に使用することができます.
HTMLでは、ブロック/要素と共に修飾子を使用して追加機能を提供します.
BEMは、CSSをオーサリングする新しい方法です.しかし、それが無効であると主張して、Bemに対する若干の議論があります.
あなたがBEMを使用するかどうかはあなた次第です、あなたのチーム、そして多分プロジェクトです.あなたの考えは何ですか?あなたは、BEMを使うのを好みますか?
もし私の作品が好きなら
私はより多くのプロジェクトをもたらすことができるように、あなたのための記事
Web開発についてもっと知りたい場合は
どのような境界線は何ですか?
BEMはブロック、要素、修飾子を表します.これは、CSSのネーミングコンベンションのクリーナーと読みやすいCSSクラスを書くためです.
また、あなたのプロジェクトで後でそれらを再利用するために独立したCSSブロックを書くことを目指します.
// Blocks are named as standard CSS classes
.block {
}
// Elements declared with 2 underscores, after block
.block__element {
}
// Modifiers declared with 2 dashes, after block or after element
.block--modifier {
}
// element and modifier together
.block__element--modifier {
}
何がブロックですか?
ブロックは独立していて、再利用可能で、通常、ウェブページのより大きな構成要素です.修飾子を持ち、要素を含めることができます.
ブロックの例としてWebページのようなヘッダー、nav、セクション、フォーム、記事、脇、フッターの大きな部分を数えることができます.
例えば、LinkedInのヘッダーナビゲーションをブロックとして使用することができます.
<header class="global-nav"></header>
<style>
.global-nav {
// Rules
}
</style>
元素
要素はブロックの子です.要素は1つの親ブロックを持つことができ、独立してそのブロックの外側で使用することはできません.LinkedInヘッダー要素の例は以下の通りです.
要素の名前は親ブロックの名前から始めなければなりません.
<header class="global-nav">
<div class="global-nav__content">
<div class="global-nav__top-left-part">
<a href="#" class="global-nav__branding">
<img class="global-nav__logo" />
</a>
<div class="search-global">
<input class="search-global__input" />
<div class="search-global__icon-container">
<img class="search-global__icon" />
</div>
</div>
</div>
<nav class="global-nav__top-right-part">
<ul class="gloabl-nav__items">
<li class="gloabl-nav__item">
<a href="#" class="global-nav__primary-link">
<img class="global-nav__icon"/>
<span class="global-nav__primary-link-text">Home</span>
</a>
</li>
</ul>
</nav>
</div>
</header>
修飾子
クラスの異なる状態やスタイルは修飾子で表されます.これらは、ブロックだけでなく、要素に使用することができます.
HTMLでは、ブロック/要素と共に修飾子を使用して追加機能を提供します.
<button class="button button--success">
Success button
</button>
<button class="button button--danger">
Danger button
</button>
修飾子の命名は、その親ブロック名、それ以降の2つのダッシュ、および独自の名前で終了する必要があります.ブロック修飾子:
.btn {
// rules
.btn--primary {} // Block modifiers
.btn--secondary {}
}{% youtube LPHobzrF8xw %}
アクションで見る結論
BEMは、CSSをオーサリングする新しい方法です.しかし、それが無効であると主張して、Bemに対する若干の議論があります.
あなたがBEMを使用するかどうかはあなた次第です、あなたのチーム、そして多分プロジェクトです.あなたの考えは何ですか?あなたは、BEMを使うのを好みますか?
もし私の作品が好きなら
私はより多くのプロジェクトをもたらすことができるように、あなたのための記事
Web開発についてもっと知りたい場合は
Reference
この問題について(初心者のためのBEM), 我々は、より多くの情報をここで見つけました https://dev.to/cglikpo/css-bem-made-easy-40i3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol