美文网首页
Sass中如何导入文件

Sass中如何导入文件

作者: 前白 | 来源:发表于2021-02-01 11:27 被阅读0次

    在 CSS 中我们可以通过 @import 指令将一个 css 文件导入到另一个 css 文件中。但是它有一个需要注意的地方,就是只有执行到 @import 指令时,浏览器才会去下载其他 css 文件,这导致页面加载起来特别慢,所以并不太常用。

    而 Sass 语言中同样支持 @import 指令的使用,并且与 CSS 中有一些区别,下面我们来看一下 Sass 中是如何使用 @import 指令导入文件的。

    Sass 导入文件

    Sass 中也有一个 @import 规则,但是与 CSS 有一些不同,CSS 中 @import 指令在每次调用时,都会都会创建一个额外的 HTTP 请求。Sass 中的 @import 规则在生成 CSS 文件时就把相关文件导入进来,不需要额外的 HTTP 请求。

    在导入 Sass 文件时,可以不用导入文件的全名,省略 .sass 或者 .scss 后缀名。这样在不修改样式表的前提下,就可以修改被导入的 Sass 样式文件语法,在 sassscss 语法之间随意切换。

    示例:

    例如已知现有两个Sass 文件:

    // first.scss 文件
    .xkd{
        font-size: 14px;
        p{
            color: pink;
        }
    }
    
    // second.scss 文件
    .f14{
        font-size: 14px;
    }
    .f16{
        font-size: 16px;
    }
    

    如果我们需要将 second.scss 文件导入到 first.scss 文件中,可以像下面这样:

    .xkd{
        font-size: 14px;
        p{
            color: pink;
        }
    }
    @import "./second";
    

    然后执行编译命令:

    sass first.scss:first.css --style expanded
    

    上述代码编译后的 CSS 代码,如下所示(first.css):

    .xkd {
      font-size: 14px;
    }
    .xkd p {
      color: pink;
    }
    
    .f14 {
      font-size: 14px;
    }
    
    .f16 {
      font-size: 16px;
    }
    

    可以看到 second.scss 文件中的代码也成功编译到了 first.css 文件中。

    需要注意的是,在 CSS 中@import 指令必须位于文件的顶部,而在 Sass 中 @import 指令则可以位于文件中的任意位置。

    由于 Sass 可以兼容原生 CSS 语法,所以我们也可以在 Sass 文件中导入 CSS 文件。

    使用SASS部分文件

    在一个实际项目中会可能会创建很多 Sass 文件,但是一般不会每个 Sass 文件都有一个对应的 CSS 文件,而是将少数几个 Sass 文件生成 CSS 文件,其他的 Sass 文件则通过 @import 导入到这些 Sass 文件中。一般不需要生成独立 CSS 文件的 Sass文件称为局部文件,Sass 中有特殊的约定来命名这些文件。

    Sass 局部文件的文件名以下划线开头,这样 Sass 就不会在编译时单独编译这个文件输出 CSS,而只把这个文件用作导入。当导入局部文件时,可以省略文件名开头的下划线。

    示例:

    例如现在有一个局部文件 _myfile.scss ,这个文件在编译时不会被生成一个对应的 CSS 文件,而是导入到其他的 Sass 文件中。导入格式如下所示:

    @import "_myfile";
    

    嵌套导入

    Sass 文件的导入和 CSS 还有一点不同,就是 Sass 支持 import 命令写嵌套语法中,导入的 Sass 局部文件就会被直接插入到 CSS 规则内导入它的地方。

    示例:

    例如现在有一个局部 Sass 文件 _myfile.scss

    .xkd{
        font-size: 14px;
    }
    

    然后将这个局部文件导入到另一个 Sass 文件 style.scss 中:

    .div{
        color: #ccc;
        .div-top{
            border: 1px solid #000;
            @import "./myfile";
        }
    }
    

    编译成 CSS 代码:

    .div {
      color: #ccc;
    }
    .div .div-top {
      border: 1px solid #000;
    }
    .div .div-top .xkd {
      font-size: 14px;
    }
    

    可以看到编译后的 CSS 文件中,局部文件 _myfile.scss 中的样式,被嵌套在了 .div-top 选择器中。

    相关文章

      网友评论

          本文标题:Sass中如何导入文件

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