覆盖LESS变量

Vio*_*rel 7 less symfony twitter-bootstrap lessphp

我有以下堆栈:

  1. Symfony2的
  2. 安装了lessphp过滤器的Twig.
  3. Twitter Boostrap

在base.css我有:

// base.less
@import '/path/to/bootstrap.less'
@linkColor: 13px;
Run Code Online (Sandbox Code Playgroud)

变量名称根本不重要.它可以是bootstrap中使用的任何其他变量.它只是没有被覆盖.但是,如果我将变量放入单独的.less文件并将其导入base.less,一切都按预期工作:

// base.less
@import '/path/to/bootstrap.less'
@import '/path/to/variables.less'
Run Code Online (Sandbox Code Playgroud)

// variables.less
@linkColor: 13px;
Run Code Online (Sandbox Code Playgroud)

为什么这样做而另一个没有?查找文档(less/lessphp)但找不到与此相关的任何内容.(或者我不知道在哪里看).

有人能解释为什么会这样吗?

whi*_*rra 7

它看起来像是lessphp编译器中的一个错误.看看github问题.您的解决方法,将变量声明放入另一个文件并导入它工作正常.谢谢你的方式;)


Eln*_*mov 2

发生这种情况是因为您在使用变量定义所有 Bootstrap 样式覆盖了该变量。

我这样解决这个问题:

  1. 创建我自己main.less的导入我自己的bootstrap.less.
  2. 我自己的bootstrap.less只是将 Bootstrap 的bootstrap.less文件复制到我自己的文件夹中,并相应更改了导入路径,但有一个例外:它是由自己导入的,variables.less而不是 Bootstrap 的文件。
  3. 我自己variables.less导入 Bootstrap 的variables.less,然后覆盖我需要的。