首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将变量和样式规则导入一个文件

如何将变量和样式规则导入一个文件
EN

Stack Overflow用户
提问于 2020-05-31 09:54:32
回答 1查看 215关注 0票数 1

我有theme.scss文件,它包含我的网站的样式,它的内容看起来类似于

代码语言:javascript
复制
//Direction variable[rtl|ltr]
$direction: ltr;
//Theme style
.selector-1 {
    color: red;
}
.selector-2 {
    color: red;
    @if $direction == ltr {
        right: 9px;
    } @else {
        left: 9px;
    }
}

我需要将$direction变量与样式分开。我需要创建两个新文件:ltr.scss & rtl.scss。如果区域设置为ltr,则从角分量调用ltr.scss,否则调用rtl.scss

我到目前为止所做的:

theme.scss

代码语言:javascript
复制
.selector-1 {
    color: red;
}
.selector-2 {
    color: red;
    @if $direction == ltr {
        right: 9px;
    } @else {
        left: 9px;
    }
}

ltr.scss

代码语言:javascript
复制
$direction: ltr;
@import './theme.scss';

rtl.scss

代码语言:javascript
复制
$direction: rtl;
@import './theme.scss';

但我得到了SassError: Undefined variable.$direction

我知道我应该将ltr.scssrtl.scss导入到theme.scss文件中以删除错误,但在本例中,我必须创建另外两个新文件& theme-ltr.scss & theme-rtl.scss;每个文件都有冗余代码。

如何只创建两个新的文件,我将包括在我的角组件(一个为ltr和另一个为rtl),并使每个文件声明方向变量&导入网站主题文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-31 11:25:20

@import替换为@use时,可以使用 with 关键字将变量通过配置传递给导入的文件。看起来是这样的:

代码语言:javascript
复制
@use './theme.scss' with (
  $direction: ltr
);

有关@usewith的更多信息,您可以查看官方的SASS文档:https://sass-lang.com/documentation/at-rules/use#configuration

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62114405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档