Sass:如何使用变量更改导入样式表的路径?

卢卡·雷格尔林(Luca Reghellin)

所以,我快疯了。我有一个

/style-1.scss

接着

/css/style-2.scss

  • style-2导入style-1并在/ css中编译
  • style-1也可以在根目录下编译
  • style-1还导入_utilities和_fonts(应使用路径变量)

我必须为style-1上的sprites和fonts设置路径,但是显然我想基于style-1是导入或直接编译的事实来更改路径

我试过使用全局变量,然后使用标志变量这样使用:

@if variable-exists($imported) 做这个..其他..

但是没有运气。似乎您无法在导入之前或之后的任何地方更改全局变量。

您曾经遇到过这样的问题吗?有什么办法吗?

亚历克斯·格雷罗(Alex Guerrero)

您的样式的不良行为是Sass的工作方式的结果。

Sass@import导入并渲染(如果文件包含css输出)文件,以便进行语句创建。因此,如果创建的导入文件定义并在内部使用一些变量来创建css输出,尽管您在导入之前或之后进行了修改,但css输出将保持不变。这是一个例子:

foo.scss

$width: 10px;
a { width: $width; }

bar.scss

$width: 20px;

@import "foo"; // Import and then renders

$width: 30px;

bar.css

a { width: 10px; }

因此,您主要有两种选择

默认情况下使用

!defaultSASS参考中的描述

如果尚未分配变量,则可以通过在值的末尾添加!default标志来分配它们。这意味着,如果变量已被分配给它,则不会被重新分配,但是如果它还没有值,它将被赋予一个值。

因此,就您而言,您可以执行以下操作:

样式1.scss

@import "utilities";
@import "fonts"
$foo-sprite: "path/to/foo.png" !default;
.foo-icon { background-image:url($foo-sprite) }

style-2.scss

$foo-sprite: "../path/to/foo.png";
@import "../style-1.scss";

这些将是CSS输出文件:

样式1.css

.foo-icon { background-image:url("path/to/foo.png") }

style-2.css

.foo-icon { background-image:url("../path/to/foo.png") }

在两个文件中创建一个新的导入的局部文件

有时您不能编辑变量,因为它来自导入的框架,因此,在这种情况下,解决问题的最佳方法是创建一个要由style-1.scss和style-2.scss导入的新部分。 _common.scss。_common.scss应包含必须呈现的style-1.scss中的sass代码。这样,您可以为每个样式文件获得不同的路径。

样式1.scss

@import "utilities";
@import "fonts";
@import "common"; // This is the 

style-2.scss

@import "utilities";
@import "fonts";
@import "paths"; // You can import here different sprite and font paths
$foo-path: "../foo/bar.css" // You can also declare variables here if you prefer
@import "common";

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从外部目录导入Sass样式表

来自分类Dev

从外部目录导入Sass样式表

来自分类Dev

当Angular 8中导入了样式表时,如何使用SCSS更改字体颜色?

来自分类Dev

如何使用Gulp更改SASS路径变量?

来自分类Dev

如何使用Dart更改CSS样式表?

来自分类Dev

如何使用样式表更改PyQt按钮的位置?

来自分类Dev

如何使用JavaScript动态更改级联样式表

来自分类Dev

如何使用下拉框更改样式表?

来自分类Dev

在多个LESS或SASS样式表中安全导入库

来自分类Dev

使用变量SASS导入路径

来自分类Dev

如何更改QMessageBox按钮的样式表?

来自分类Dev

如何更改链接的样式表?

来自分类Dev

如何在Webpack中加载Sass样式表中使用的图像?

来自分类Dev

如何在 xml 中为 xsl 样式表使用相对路径?

来自分类Dev

视图 | 如何从特定的 NPM 包导入样式表?

来自分类Dev

更改Primefaces样式表

来自分类Dev

如何在Qt应用程序中使用样式表更改QPushButton图标大小

来自分类Dev

如何使用CSS样式表更改“继承的”字体系列

来自分类Dev

如何在Qt应用程序中使用样式表更改QPushButton图标大小

来自分类Dev

Rails 4 x premailer x SASS:在邮件视图中导入样式表

来自分类Dev

sphinx-如何更改文档样式表

来自分类Dev

如何更改样式表的src属性

来自分类Dev

Symfony2:在样式表中使用Twig变量

来自分类Dev

使用Ionic Framework单击更改CSS样式表

来自分类Dev

使用 npm 命令更改样式表

来自分类Dev

使用JS更改内联样式与更改外部样式表样式

来自分类Dev

使用属性样式表

来自分类Dev

无法使用样式表

来自分类Dev

如何使用webpack提取多个主题样式表?

Related 相关文章

热门标签

归档