Less 提供了 CSS @import CSS 规则的几个扩展,以提供更多的灵活性来处理外部文件。
语法:@import (keyword) "filename";
以下是导入指令的相关详情:
-
reference
,使用较少的文件但不输出。 -
inline
,在输出中包含源文件,但不对其进行处理。 -
less
,无论文件扩展名为什么,都将其视为 less 文件。 -
css
,无论文件扩展名为什么,都将其视为 CSS 文件。 -
once
,仅包含一次文件(这是默认行为)。 -
multiple
,多次包含文件。 -
optional
,找不到文件时继续编译。
参考
使用 @import(reference)
导入外部文件,但除非被引用,否则不将导入的样式添加到编译的输出中。
reference 根据所使用的方法(混合还是扩展),会产生不同的结果:
-
mixin
:当 reference 样式用作隐式 mixin 时,它的规则将被混合,标记为“not reference”,并照常显示在被引用的位置。 -
extend
:扩展选择器时,仅将新选择器标记为未引用,并将其拉入引用 import 语句的位置。
Inline
使用 @import (inline) 包括外部文件,但不能对其进行处理。
Less
使用 @import (less)
治疗导入的文件一样都不能少,无论文件扩展名。
@import (less) "main.css";
CSS
使用 @import (css)
治疗导入的文件作为常规 CSS,无论文件扩展名,也就意味着 import 语句将保持原样。
@import (css) "main.less";
// 输出
@import "main.less";
Once
@import
语句的默认行为,也就意味着该文件仅导入一次,该文件的后续导入语句将被忽略。
@import (once) "main.less";
// 此语句将被忽略
@import (once) "main.less";
Multiple
使用 @import (multiple)
允许使用相同的名称导入的多个文件,这是一次相反的行为。
// file: main.less
div {color: green;}
// file: index.less
@import (multiple) "main.less";
@import (multiple) "main.less";
// 输出结果
div {color: green;}
div {color: green;}
Optional
用于 @import (optional)
仅在文件存在时才允许导入,如果没有 optional 关键字 Less,则在导入找不到的文件时会引发 FileError 并停止编译。