私はCSSを書いているときにBEM方法論を使い始めましたが、特定のことを行うための最良の方法を見つけるのに苦労することはほとんどありませんでした。
ここでは、パネルの簡単な例を取り上げたいと思います。
BEMスタイルを使用してパネルコンポーネントCSSを作成しているとしましょう。したがって、私のCSSは次のようになります。
.panel {}
.panel__titlebar {}
.panel__content { display: none; }
パネルは、クロムレスまたはクロムありのいずれかです。そこで、パネルに別の修飾子クラスを定義します。
.panel--with-chrome {
border: 4px solid black;
border-radius: 4px;
}
たとえば、パネルをフルスクリーン/最大化した状態にして、クロームとタイトルバーが消えることもできます。パネルとタイトルバーの両方に修飾子を定義する代わりに、親(たとえば、パネル-フルスクリーン)で修飾子を定義するのが賢明であり、残りの要素はそれに応じて変更されます。だから今私のCSSは次のようになります:
.panel--fullscreen {
/* something has to be done here */
}
.panel--fullscreen .panel__titlebar { display: none; }
フルスクリーンモードでクロームを削除するには、次のいずれかを実行できます。
パネルを切り替える-パネルと一緒にJSのChromeクラス-フルスクリーンクラス
パネル内のクロムCSSを上書きします--fullscreenクラス。
理想的には、JSの1つのクラス( .panel--fullscreen)だけを切り替えてフルスクリーンモードを切り替えたいので、最初は良くありません。
そして、2番目のものは悪い習慣です。以前のCSSを上書きする必要があるからです。
それで、それについて行くための最良の方法は何ですか?あなたのコメントに感謝します。
ありがとう