css – 如何避免多个@Imports的SASS变量?

前端之家收集整理的这篇文章主要介绍了css – 如何避免多个@Imports的SASS变量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用的网站使用rails资产管道和application.scss文件来导入和处理不同的css文件.

但是,某些样式表在特定位置使用,对于那些将它们导入全局清单没有意义.但不是这样导入它们需要将variables.scss和可能的mixins.scss导入到工作表本身(因此它们将正确处理),导致最终的css中出现重复的代码.

有没有办法基本告诉预处理器 – “相信我,你看到的变量/ mixin将由所有处理的时间定义”?

否则我看不到要避免将每张纸张导入单个清单,这看起来很臃肿.

谢谢.

解决方法

对你的问题的简短回答是否定的.变量需要在编译时调用时按逻辑顺序定义.这就像一个“鸡肉和鸡蛋”的场景.

从我在您的描述中可以确定的,您正在处理的项目不是编译成统一的工作流程,而是分块到与您的文件结构相关的模块化部分.如果是这种情况,您可以在每个文件的开头处执行的操作是从根引用变量文件.

在正常的工作流程中,您可以根据定义的层次结构导入scss文件,如下所示:

上海社会科学院/ style.scss

/* Main Stylesheet */

@import "variables";
@import "mixins";

/* Modular Sections */
@import "layout/header";
@import "layout/body";
@import "layout/footer";

将使用命令sass sass / style.scss:style.css编译为一个样式表style.css

我假设您的项目所做的是将所有/ * Modular Sections * /文件编译到他们自己的CSS文件中.

布局/ header.scss

/* Header Stylesheet */
@import "../variables";
@import "../mixins";

给定类似于的文件结构:

/root

  style.scss
  variables.scss
  mixins.scss

  /layouts

    header.scss
    body.scss
    footer.scss

这一切似乎都有点傻.我不知道当前sass编译中的所有参数,但我建议使用统一的工作流程.

猜你在找的CSS相关文章