我正在开发一个刚刚开始的 Rails 项目。我们想使用 twitter bootstrap 作为我们样式的基础,一开始我们只是直接在 HTML 代码上使用 bootstrap 的类名,就像 bootstrap 的文档中所示,但在阅读以下文章后:
可维护 CSS 的经验教训 http://blog.pamelafox.org/2012/12/a-tale-of-two-bootstraps-lessons.html
请停止在 HTML 中嵌入 Bootstrap 类 http://ruby.bvision.com/blog/please-stop-embedding-bootstrap-classes-in-your-html
很明显为什么这不是使用 bootstrap 的正确原因,所以经过更多阅读后:
将 CSS 与 HTML 解耦 http://thenittygritty.co/decouple-css
smacss http://smacss.com/
除此之外,似乎使用 sass @extend 是避免使用 bootstrap 的类名的正确方法,所以不要这样做:
<button type="submit" class="btn">Search</button>
我们会这样做:
<button type="submit" class="button">Search</button>
我们的 sass 代码如下所示:
.button {
@extend ".btn";
}
这种方法的问题在于,除了每次扩展引导类以使用不同名称时都会添加的一堆额外选择器之外,在引导程序使用如下选择器的情况下:
.form-search .input-append .btn, .form-search .form-input-append .btn {
border-radius: 0 14px 14px 0;
}
该按钮不会获得正确的样式,因为 sass 不会将相同的规则应用于我们的自定义类名,我的意思是,sass 是not这样做:
.form-search .input-append .btn, .form-search .input-append .button,
.form-search .form-input-append .btn, .form-search .form-input-append .button {
border-radius: 0 14px 14px 0;
}
所以我想知道,这是避免将 bootstrap 的类名嵌入到 HTML 中的正确方法吗?如果是这样,我应该如何处理这个问题(它经常发生)?如果没有,那么使用自定义类名但仍然从引导程序获取样式的更好方法是什么?
我真的很感激你对此的想法。请记住,我只是在学习整体网页设计(css、sass、less、html、js 等)。