セマンティック HTML マークアップを維持しながら Bootstrap を使用するにはどうすればよいでしょうか? 質問する

セマンティック HTML マークアップを維持しながら Bootstrap を使用するにはどうすればよいでしょうか? 質問する

ブートストラップ次のようなクラスを提供しますtext-leftアライメントクラス)、text-lowercase変換クラス) などがあり、これはインライン スタイルを定義することと同じです (技術的ではなく論理的に)。

代替的な方法論としては、bemでは、クラスは「物理的な」ブロックと要素、およびその修飾子 (または、などの要素の状態active)を反映する必要がありcurrent、スタイルは純粋に CSS で適用される必要があると規定しています。

Bootstrapのアプローチは、構造とプレゼンテーションの分離が不十分であるように思われ、これに反している。ウェブマスター向け W3C ヒント

この問題は多くの人に共感されています。

  1. Niko Sams - Twitter Bootstrap が嫌いな理由
  2. Paradax - Bootstrap 良い点、悪い点、そして醜い点
  3. bvision - HTML に Bootstrap クラスを埋め込むのはやめてください。

HTML マークアップのセマンティクスを維持しながら Bootstrap を使用するにはどうすればよいでしょうか?

ベストアンサー1

Bootstrapはミックスイン使用できます。したがって、col-xs-12HTML のようにクラスを追加する代わりに、@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 ミックスイン

おすすめ記事