Sass 拓展了 @import 的功能,允许其导入 SCSS 或 Sass 文件。被导入的文件将合并编译到同一个 CSS 文件中,另外,被导入的文件中所包含的变量或者混合指令 (mixin) 都可以在导入的文件中使用。
通常,@import 寻找 Sass 文件并将其导入,但在以下情况下,@import 仅作为普通的 CSS 语句,不会导入任何 Sass 文件。
.css;http:// 开头;url();@import 包含 media queries。如果不在上述情况内,文件的拓展名是 .scss 或 .sass,则导入成功。没有指定拓展名,Sass 将会试着寻找文件名相同,拓展名为 .scss 或 .sass 的文件并将其导入。
@import "foo.scss";
或
@import "foo";
都会导入文件 foo.scss,但是
@import "foo.css";
@import "foo" screen;
@import "http://foo.com/bar";
@import url(foo);
编译为
@import "foo.css";
@import "foo" screen;
@import "http://foo.com/bar";
@import url(foo);
Sass 允许同时导入多个文件,例如同时导入 rounded-corners 与 text-shadow 两个文件:
@import "rounded-corners", "text-shadow";
导入文件也可以使用 #{ } 插值语句,但不是通过变量动态导入 Sass 文件,只能作用于 CSS 的 url() 导入方式:
$family: unquote("Droid+Sans");
@import url("http://fonts.googleapis.com/css?family=\#{$family}");
编译为
@import url("http://fonts.googleapis.com/css?family=Droid+Sans");
Sass 中 @media 指令与 CSS 中用法一样,只是增加了一点额外的功能:允许其在 CSS 规则中嵌套。如果 @media 嵌套在 CSS 规则内,编译时,@media 将被编译到文件的最外层,包含嵌套的父选择器。这个功能让 @media 用起来更方便,不需要重复使用选择器,也不会打乱 CSS 的书写流程。
.sidebar {width: 300px;@media screen and (orientation: landscape) {width: 500px;}
}
编译为
.sidebar {width: 300px; }@media screen and (orientation: landscape) {.sidebar {width: 500px; } }
@media的 queries 允许互相嵌套使用,编译时,Sass 自动添加
@media screen {.sidebar {@media (orientation: landscape) {width: 500px;}}
}
编译为
@media screen and (orientation: landscape) {.sidebar {width: 500px; } }
@media 甚至可以使用 SassScript(比如变量,函数,以及运算符)代替条件的名称或者值:
$media: screen;
$feature: -webkit-min-device-pixel-ratio;
$value: 1.5;@media #{$media} and ($feature: $value) {.sidebar {width: 500px;}
}
编译为
@media screen and (-webkit-min-device-pixel-ratio: 1.5) {.sidebar {width: 500px; } }
上一篇:刚刚,华为发布全新智能化品牌,目标年底上车50万辆 华为新能源汽车智能化 华为高端智能化汽车
下一篇:首创“无痕模式”,极氪009光辉能否终结豪华MPV加价销售现状? 极氪009光辉版打破商务加价 极氪009光辉版有自动驾驶吗