美文网首页
sass学习5——sass文件导入、注释、编译中文

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

作者: 哈哈乐乐WXT | 来源:发表于2018-09-21 16:03 被阅读14次

    现在有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,尽管这会造成浏览器解析时的额外下载:

    • 被导入文件的名字以.css结尾;
    • 被导入文件的名字是一个URL地址(如:http://www.sass.hk/css/css.css
    • 被导入文件的名字是CSS的统一资源定位器()值。

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

    注释

    sass提供两种注释

    • // 这种注释内容不会出现生成css文件
    • /* */ 这种注释内容会出现在生成的css文件中

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

    Encoding.default_external= Encoding.find('utf-8')
    
    放在所有的require XXXX后即可。
    
    image.png
    image.png

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

    image.png image.png

    相关文章

      网友评论

          本文标题:sass学习5——sass文件导入、注释、编译中文

          本文链接:https://www.haomeiwen.com/subject/khianftx.html