将.css文件导入.less文件

import .css file into .less file

你能把.css文件导入.less文件中吗…?

我对它比较熟悉,并将其用于我的所有开发。我经常使用如下结构:

1
2
3
4
5
6
7
@import"normalize";

//styles here

@import"mixins";
@import"media-queries";
@import"print";

所有的导入都是其他的。更少的文件,所有的工作都是正常的。

我目前的问题是:我想将.css文件导入.less,以引用.css文件中使用的样式,如下所示:

1
2
3
4
5
6
7
@import"../style.css";

.small {
    font-size:60%;
    .type;
}
// other styles here

.css文件包含一个名为.type的类,但当我试图编译.less文件时,会得到错误NameError: .type is undefined

.less文件不会导入.css文件,只导入其他.less文件…?或者我引用的是错误的…?!


通过指定选项,可以强制将文件解释为特定类型,例如:

1
@import (css)"lib";

意志输出

1
@import"lib";

1
@import (less)"lib.css";

将导入lib.css文件并将其视为较少的文件。如果指定的文件较少且不包含扩展名,则不会添加任何扩展名。


如果希望将CSS复制到输出中而不进行处理,则可以使用(inline)指令。例如。,

1
@import (inline) '../timepicker/jquery.ui.timepicker.css';


将CSS文件的文件扩展名更改为.less。您不需要在其中写更少的内容;所有CSS都是无效的(除了您必须转义的MS内容,但这是另一个问题。)

根据Fractalf的答案,这在v1.4.0中是固定的。


我必须在1.7.4版本中使用以下内容

1
@import (less)"foo.css"

我知道公认的答案是@import (css)"foo.css",但没有起作用。如果要在新的less文件中重用CSS类,则需要使用(less),而不是(css)

检查文档。


从更少的网站:

If you want to import a CSS file, and don’t want LESS to process it,
just use the .css extension:

@import"lib.css"; The directive will just be left as is, and end up
in the CSS output.

正如jitbit在下面的注释中指出的那样,这实际上只对开发用途有用,因为您不想让不必要的@import消耗宝贵的带宽。


试试这个:

1
@import"lib.css";

官方文件:

You can import both css and less files. Only less files import
statements are processed, css file import statements are kept as they
are. If you want to import a CSS file, and don’t want LESS to process
it, just use the .css extension:

资料来源:http://lesscss.org/


如果您只想导入一个CSS文件作为引用(例如使用mixins中的类),但不想在结果中包含整个CSS文件,则可以使用@import (less,reference)"reference.css";

少了

1
2
3
4
5
6
 @import (less,reference)"reference.css";
 .my-class{
     background-color:black;
     .reference-class;
     color:blue;
 }

参考文献

1
2
3
.reference-class{
    border: 1px solid red;
}

*使用lessc my.less out/my.css的结果(my.css)*

1
2
3
4
5
.my-class {
  background-color: black;
  border: 1px solid red;
  color: blue;
}

我用的是lessc 2.5.3


如果您想导入一个CSS文件,应该少用这一行:

1
2
3
.ie {
  @import (less) 'ie.css';
}

因为1.5.0 u可以使用"inline"关键字。

示例:@import(inline)"not less compatible.css";

当一个CSS文件可能不太兼容时,您将使用它;这是因为尽管不太支持大多数已知标准的CSS,但它不支持某些地方的注释,并且不支持所有已知的CSS黑客,而不修改CSS。因此,您可以使用它将文件包含在输出中,以便所有CSS都在一个文件中。

(来源:http://lesscss.org/features/import directives feature)