微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用`with`和`show`子句@forward一些规则?

如何解决如何使用`with`和`show`子句@forward一些规则?

SCSS @forward 规则支持几个不错的功能

  1. @forward './colors' show $red,$green,$blue; 只会转发来自 $red$green$blue./colors./colors 否则会导出的所有其他值都将被忽略。
  2. @forward 'library' with ($space: 2em); 将使 $space 可用于图书馆,覆盖图书馆可能对 $space 的任何认设置。

我怎样才能同时使用这两者?就我而言,我使用的是 include-media 库。我想定义一个像这样包装它的模块(稍微简化):

@forward 'include-media with (
  $breakpoints: ( 'small': 400,'medium': 700,'large': 1000 )
) show media,media-context;

这里的目标是为库提供它期望的 $breakpoints 值,并且只转发 mediamedia-context 混合。不幸的是,该代码无法编译并出现此错误

Error: expected ";".
  ╷
3 │ ) show media,media-context;
  │   ^

如果将 show 子句放在 with 子句之前,我会得到类似的结果。

这似乎不是最理想的,但我可以想象这可以处理两个文件

// file _withBreakpoints.scss
@forward 'include-media' with (
  $breakpoints: ( 'small': 400,'large': 1000 )
);
// file _filtered.scss
@forward './withBreakpoints' show media,media-context;

当然有更好的方法吗?

解决方法

我检查过,但无法确认问题。 (使用编译器测试:VS Code 扩展 Live SASS by(!) Glenn Marks)。

但重要的是: hide/show 必须在 with 之前调用。

以下语法在这里有效(仅示例):

//### forward with hide

@forward 'variables' hide $color_red with(
    $color_orange: yellow,$color_gray: magenta,); 



//### forward with show

@forward 'variables' show $color_red with(
    $color_red: orange,); 

但您的代码中似乎还有其他一些问题:

  • 您尝试 @forward 只显示 media,media-context 的模块(这是唯一被转发的成员),但您尝试更改未显示/转发的变量 $breakpoints,因为它是不在列表中。
  • 就像礼貌的猜测(不知道):您想显示/转发 media,media-context。那是函数/混合吗?如果 var 你应该用 $ 编写它们。
  • 您错过了转发文件后的结束语:@forward 'include-media ...

那么,也许您喜欢尝试这样的事情:

@forward 'include-media' 
show [$?]media,[$?]media-context,$breakpoints
with (
  $breakpoints: ( 'small': 400,'medium': 700,'large': 1000 ),);

//### Think about 'show': 
//### What is not in the list is not fowarded and cannot be used.
//### So I am not sure ...
//### if your module needs more members to be forwarded so it works. 
//### Depends on your module.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?