【问题标题】:SASS variables inter-files scopeSASS 变量跨文件作用域
【发布时间】:2013-05-23 19:13:12
【问题描述】:

为了使用

@include box-shadow(0 0 10px black);

您必须包含“库”:

@import "compass/css3";

在文件的后面,我包括了其他 scss:

@import "sidebar/main";

在那个侧边栏/_main.scss 中,当我调用它时:

@include box-shadow(0 0 10px black);

指南针因错误而中断:

< ... Undefined mixin 'box-shadow'.>

这是否意味着我必须在我自己的库文件中抽象这些库,然后将该文件包含在每个其他 scss 中???

【问题讨论】:

    标签: sass compass-sass


    【解决方案1】:

    将 sidebar/main.scss 重命名为 sidebar/_main.scss - 无需更改其他代码。

    这指示 sass 编译器不要将 sidebar/main.scss 文件编译成单独的 css 文件,而是将其包含在主 scss 文件中。

    流程如下:

    sass 编译包含所有内容的主 scss 文件并生成 css(此处没有错误,因为指南针包含在顶部) sass 编译所有其他不以 _ 开头的 scss 文件,但由于这些文件不包含指南针,因此会引发错误。

    【讨论】:

    • 我知道 '_' 功能。我已经有了那个名为 _main.scss 的文件。问题是它不知道上一个文件中定义的变量 - 包含 sidebar/_main.scss 的变量。
    • 那么您也可以在第二个文件中安全地包含指南针要求。这不会使代码膨胀,因为它只包含 @mixins(至少是 css3),它们没有被编译。
    • 我就是这么做的。但我不喜欢这种方法。我不喜欢在每个其他 scss 中都包含该文件,因为我倾向于非常精细地将视图组织到子目录中。
    猜你喜欢
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    • 2020-01-25
    • 2017-11-02
    • 1970-01-01
    相关资源
    最近更新 更多