重写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也是如此。
就像在CSS中一样,在一个范围内重写是使用LESS的一种预期方式。
没关系!
我通常创build一个较less的文件与“组件”和variables与默认值。 然后我导入一个具有相同variables但“客户”值的文件,覆盖默认值。 通过这种方式,我只需要改变一些价值,为每个客户创造一个新的devise。
这没关系,非常有用。