1

新しいプロジェクト (フォーム ページ) でBEMを試しており、フォーム入力をマークアップする最良の方法を探しています。

フォーム フィールドの「ブロック」の「要素」であると判断した、ラジオ ボタンの一般的なスタイルのセットがあります。だから私はそれにクラスを与えました:

.projectField__radio

ラジオ ボタンは常に の直接の子であるとは限りませんが.projectField、常にその子孫です。そう:

質問 1 : BEM のコンテキストでそれは OK ですか?

質問 2 : 特定のフィールド (「色」フィールドと呼びます) について、標準のラジオ ボタン レイアウトがありません。これらは、ページ上で視覚的に独自のブロックであるダイアグラムを含むフィールドの一部であるため、div に入れました。

 .projectColourSettings

ラジオボタンをマークアップするにはどうすればよいですか? 基本的なラジオ ボタンのスタイルが必要ですが、色設定フィールドの一部として独自のスタイルも必要です。

これですか?

<input class="projectField__radio projectColourSettings__radio" type="radio"  value=1 />

多分

<input class="projectField__radio projectField__radio--colourSettings" type="radio"  value=1 />

私は今のところ BEM が好きで、自分のマークアップについて真剣に考えざるを得ませんが、これをどのように進めればよいかわかりません。

4

2 に答える 2

2

後者が正しいオプションだと思います:

projectFieldブロックです。

radioはこのブロック内の要素なので、 で識別しprojectField__radioます。

最後に、この要素を変更する必要があります。

projectField__radio--colourSettings 
于 2016-01-22T13:15:14.533 に答える
1

あなたの質問に答えるには 1 : はい、これは BEM ではまったく問題ないと思います。方法論は抽象化のレイヤーを追加し、特定のマークアップをあまり気にしません。たとえば、ラジオ ボタン (「要素」) がフォーム フィールド (「ブロック」) の直接の子であるかどうかなどです。

于 2016-01-22T13:25:28.003 に答える