Twitter bootstrap 以较少的时间覆盖

Twitter bootstrap 以较少的时间覆盖,twitter-bootstrap,less,Twitter Bootstrap,Less,我正在使用LESS引导,我是LESS新手,所以我有个问题 例如,我想将padding属性添加到body 在bootstrap.less中,我制作了以下内容: @import "bootstrap/scaffolding.less"; body { margin: 0; font-family: @baseFontFamily; font-size: @baseFontSize; line-height: @baseLineHeight; color: @textColor;

我正在使用LESS引导,我是LESS新手,所以我有个问题

例如,我想将padding属性添加到body

在bootstrap.less中,我制作了以下内容:

@import "bootstrap/scaffolding.less";
body {
  margin: 0;
  font-family: @baseFontFamily;
  font-size: @baseFontSize;
  line-height: @baseLineHeight;
  color: @textColor;
  background-color: @bodyBackground;
  padding: 50px;
}
但是在编译的CSS文件中,我有两个主体类,一个是原始的,然后是我自己的。 如何在不重复的情况下向类添加属性?
谢谢。

如前所述,不修改无引导文件,而是将样式添加到覆盖引导的样式表/无引导文件中被认为是最佳做法。这样,您将避免升级到新版本的引导时出现问题,并且当您需要跟踪错误时,只需查看覆盖就会容易得多

现在,您可能会遇到与重写相关的问题,并试图找出为什么应用的样式不重写引导的样式。在这种情况下,我建议您阅读Andy Clarke的伟大文章-CSS:Specification Wars(它有点老了,但仍然是CSS专一性的一个很好的解释):

编辑-为了更好地解释多个类块的优点,下面是第一个使用两个类为一个元素设置样式的示例:

CSS:

HTML

编辑并回答@Chris Moschini评论

是的,如果您创建自己的导入Bootstrap.LESS的LESS文件,然后覆盖要更改的变量,则还可以通过LESS覆盖引导默认值

@import "less/bootstrap.less";
@brand-primary: red;
要查看可以覆盖哪些内容,请在git上查看该文件,如果您想在那里乱搞,还可以签出mixins.less文件


但在许多情况下,您需要通过css特殊性进行一些重写。

看看这个,然后回答:@am_u我看到了这个,但是在css文件中有两个类是正常的吗?浏览器的性能如何?是的,同一个类有一个或多个case是正常的,尽管不在同一个css文件中-除非它是从多个css/less文件一起编译的。@是的,但在编译的css文件中,我有两个类,而不是一个…嗯,CSS不是这样工作的——在CSS中,您可以通过将多个块指向同一个类来覆盖,这不会对浏览器性能产生任何明显的影响。查看专用性链接以了解如何覆盖。LESS不会删除您的覆盖并将其编译为一个类/块,因为这会删除CSS覆盖的一些优点。感谢您的编辑,现在我明白了为什么LESS不会替换块。是否没有办法告诉LESS,“覆盖为中,甚至不将覆盖的规则导出到CSS”,以避免膨胀,而不是,“像垃圾邮件一样用这两个规则覆盖CSS,包括我们知道永远不会应用的规则?”我认为这取决于您选择的编译器如何选择处理覆盖。
.center {
   margin: 0 auto;
}
img.center {
   display: block;
}
<div class="center">This will center horizontally</div>
<img class="center" src="foo.png"><!-- this image will also center horizontally -->
ul {
    list-style: none;
    padding: 5px;
}

ul ul {
    padding: 1px;
}
@import "less/bootstrap.less";
@brand-primary: red;