Bootstrap提供了 text-left
( Alignment classes ), text-lowercase
( Transformation classes ) 等类,这与定义内联样式相同(不是技术上的,但从逻辑上讲)。
在替代方法中,例如 bem
,它强制类应该反射(reflect)“物理” block 和元素,以及它们的修饰符(或元素的状态,例如 active
、current
),并且任何样式都应该纯粹在 CSS 中应用。
Bootstrap 方法似乎没有很好地分离结构和表示之间的关注点,并且违背了这一点 W3C Tip for Webmasters .
这个问题得到了很多人的响应:
- Niko Sams - Why I don't like Twitter Bootstrap
- Paradax - Bootstrap The good, the bad and the ugly
- bvision - Please stop embedding Bootstrap classes in your HTML!
如何在保持 HTML 标记语义的同时使用 Bootstrap?
最佳答案
Bootstrap 提供 mixins你可以使用。因此,与其在 HTML 中添加像 col-xs-12
这样的类,不如在元素的选择器 block 中使用 @include make-xs-column(12)
.要添加一行,可以使用 @mixin make-row
。
引用 Alexey Morashko 的回答,而不是这个无语义的标记:
<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>
CSS
.items-list {
@include make-row();
.item
@include make-xs-column(12);
@include make-sm-column(6);
@include make-md-column(4);
}
}
您可以在 Sitepoint 文章 - 5 Useful Sass Mixins in Bootstrap 中找到更多 Bootstrap mixins 示例.
关于html - 如何在维护语义 HTML 标记的同时使用 Bootstrap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28824725/