ブートストラップ次のようなクラスを提供しますtext-left
(アライメントクラス)、text-lowercase
(変換クラス) などがあり、これはインライン スタイルを定義することと同じです (技術的ではなく論理的に)。
代替的な方法論としては、bem
では、クラスは「物理的な」ブロックと要素、およびその修飾子 (または、などの要素の状態active
)を反映する必要がありcurrent
、スタイルは純粋に CSS で適用される必要があると規定しています。
Bootstrapのアプローチは、構造とプレゼンテーションの分離が不十分であるように思われ、これに反している。ウェブマスター向け W3C ヒント。
この問題は多くの人に共感されています。
- Niko Sams - Twitter Bootstrap が嫌いな理由
- Paradax - Bootstrap 良い点、悪い点、そして醜い点
- bvision - HTML に Bootstrap クラスを埋め込むのはやめてください。
HTML マークアップのセマンティクスを維持しながら Bootstrap を使用するにはどうすればよいでしょうか?
ベストアンサー1
Bootstrapはミックスイン使用できます。したがって、col-xs-12
HTML のようにクラスを追加する代わりに、@include make-xs-column(12)
要素のセレクター ブロック内で を使用します。行を追加するには、 を使用します@mixin make-row
。
回答を参考にアレクセイ・モラシュコ意味のないマークアップの代わりに、
<div class="items-list row">
<div class="item col-xs-12 col-sm-6 col-md-4">
<div class="item-name">Product first</div>
<div class="item-description">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div>
</div>
<div class="item col-xs-12 col-sm-6 col-md-4">
<div class="item-name">Product second</div>
<div class="item-description">Ratione, ullam, reprehenderit aliquid saepe ab harum.</div>
</div>
<div class="item col-xs-12 col-sm-6 col-md-4">
<div class="item-name">Product third</div>
<div class="item-description"> totam repudiandae velit eum accusantium veritatis.</div>
</div>
</div>
代わりに以下を使用できます:
html
<div class="items-list">
<div class="item">
<div class="item-name">Product first</div>
<div class="item-description">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div>
</div>
<div class="item">
<div class="item-name">Product second</div>
<div class="item-description">Ratione, ullam, reprehenderit aliquid saepe ab harum.</div>
</div>
<div class="item">
<div class="item-name">Product third</div>
<div class="item-description"> totam repudiandae velit eum accusantium veritatis.</div>
</div>
</div>
CS
.items-list {
@include make-row();
.item
@include make-xs-column(12);
@include make-sm-column(6);
@include make-md-column(4);
}
}
Bootstrapミックスインのさらなる例は、Sitepointの記事でご覧いただけます -Bootstrap の便利な 5 つの Sass ミックスイン。