sass学习5——sass文件导入、注释、编译中文

2018-09-21  本文已影响14人  哈哈乐乐WXT

现在有a.scss,b.scss、c.scss三个sass文件,如果在c.scss文件中想引入a.scss与b.scss文件,写法为:

@import "a";
@import "b";

注意啦:此处可以不写后缀名,也可以写。
补充:如果想一次性编译一个文件夹里所有的scss文件到另一目录中,相关命令为:

sass --update in:out
其中in 和 out 指的是输入输出文件夹

如上编译文件夹后会将说有的a、b、c文件编译,由于文件b引用了文件a中的变量,此时还会报错(找不到变量);因此我们只希望编译c.scss文件,解决办法即在局部文件的文件名下以下划线开头,这样sass就不会在编译时单独编译这个文件输出css,而是把这个文件用作导入。当@import 一个局部文件时还可以不写文件全名,即省略文件名开头的下划线。

导入下面这个局部文件里的变量
themes/_night-sky.scss 只需写成@import "themes/night-sky"
默认变量值

重复定义一个变量时会出现后定义变量覆盖先定义变量的情况,又或者你写了一个可被其他人通过@import 导入的sass库文件,你可能希望导入者可以定制修改sass库文件中的某些值,此时可以使用!default 标签,含义是:如果这个变量被声明赋值,那就用它声明的值,否则用这个默认值。

$fancybox-width:400px !default;
嵌套导入
```文件1:```

aside{
background:blue;
color:white;
}
```嵌套 ```
.blue-theme {
@import "blue-theme"
}

```生成```
.blue-theme aside{
  background:blue;
  color:white;
}
原生的css导入

由于sass兼容原生的css,所以它也支持原生的css@import。尽管通常在sass中使用@import时,sass会尝试找到对应的sass文件并导入进来,但在下列三种情况下会生成原生的css@import,尽管这会造成浏览器解析时的额外下载:

也就是说,你不能用sass的@import直接导入一个原始的css文件,因为sass会任务你想用css原生的@import。但是因为sass的语法完全兼容css,所以可以把原始css文件改名为.scss后缀后即可直接导入了。

注释

sass提供两种注释

注意啦:sass在编译中文时会出现报错的情况,解决办法:需要找到安装ruby sass的安装目录下的 engine.rb的文件,添加如下代码

Encoding.default_external= Encoding.find('utf-8')

放在所有的require XXXX后即可。
image.png
image.png

保存后,再生成的css文件即使有中文也不会报错了,生成的css文件会自动加入字符编码。

image.png image.png
上一篇下一篇

猜你喜欢

热点阅读