重写LESSvariables是不好的做法吗?

目前,我在项目中使用了Twitter Bootstrap,包括LESS文件,并编写了一些我们编写的额外的LESS代码。

最新版本意味着我们需要重写一些Bootstrap LESSvariables。 这里的一个select是维护一个Bootstrap的修改副本,我们在每个发行版上修补它们。

但是我注意到可以通过在import语句之后重新声明variables来覆盖@import LESS文件中定义的variables。

例如:

 @import "twitter-bootstrap/bootstrap.less"; // Restore base font size to pre 2.1.1 defaults @baseFontSize: 13px; // Add some custom LESS code here 

这是不好的做法? 它是LESS编译器工作方式的一个人工产物,还是它的一个预期部分? 我找不到这方面的很多信息,虽然我find了以下两个参考:

由于Less编译器中存在一个错误,您可以通过在variables初始声明后改变它来覆盖variables的“常量”值。

http://rubysource.com/how-to-customize-twitter-bootstrap%E2%80%99s-design-in-a-rails-app

通过覆盖这三个variables(在声明了grid.less导入之后)来自定义列和排水沟。

http://semantic.gs/

LESS网站本身说variables是“常数”:

http://lesscss.org/

请注意,LESS中的variables实际上是“常量”,因为它们只能被定义一次。

但后来我看到其他网站使用这种方法..这当然比维护供应商分支,似乎与less.js工作正常。

将不胜感激任何想法,这是否是一件坏事或不!

好! 上述问题之一导致了对预期行为的讨论,事实certificate,重写LESSvariables是很好的。

你的声明将覆盖CSS中相同范围内的对方; LESS也是如此。

https://github.com/cloudhead/less.js/issues/297

就像在CSS中一样,在一个范围内重写是使用LESS的一种预期方式。

没关系!

我通常创build一个较less的文件与“组件”和variables与默认值。 然后我导入一个具有相同variables但“客户”值的文件,覆盖默认值。 通过这种方式,我只需要改变一些价值,为每个客户创造一个新的devise。

这没关系,非常有用。