2017-08-30 8 views
0

私はfollwing HTMLBEMネスティング命名規則 - 孫要素

<div class="listing listing--with-margin"> 
    @foreach($recipients as $recipent) 
     <span class="listing__item">{{ $recipent }} <input type="checkbox"></span> 
     <span class="listing__item">{{ $recipent }} <input type="checkbox"></span> 
    @endforeach 

チェックボックス上のクラスは

<input type="checkbox" class="listing__input"> 

または

<input type="checkbox" class="listing__item listing__input"> 

であるべきを持って、私はオプション1ができたと思います私が書いてくれるのは、あまり巣立っていないぞっとしています。

+0

最初のもの。 2番目のオプションは 'span'と' input'クラスの両方に 'listing__item'クラスを与えます - あなたが望んでいないだろうと思いますか? – sol

+0

間違いなく、最初のもの。 2番目の変種は 'mixin'と呼ばれ、ここでは適合しません –

答えて

0

BEM documentationのNamingページを見ると、下部にフォームブロックがあるサンプルセクションが表示されます。

この例では、<form>要素があり、そのうちの1つは<input />です。

<input>は、両方のブロック.formクラスから継承、.form__input又は.form__submitいずれかのその自身要素のクラスを有します。彼らはクラス以上を継承しません。

しかし、それらには複数の修飾子クラスがあることに気づくでしょう。

+0

' 'は閉じスラッシュを使用しません。 – Rob

+0

@Rob [this](https://stackoverflow.com/a/7854998/8375199)によると、 'input'はvoid要素です。閉じスラッシュはオプションです。しかし、ベストプラクティスのために、私は答えのスラッシュを削除しました。 –

+0

はい、閉じスラッシュは何もしません。何も意味しません。要素自体には指定されておらず、ブラウザーは無視するように指示されています。それは価値がなく、無意味です。 – Rob