在 Material Design Components 的上下文中,“使用这个 SASS mixin”是啥意思?

Posted

技术标签:

【中文标题】在 Material Design Components 的上下文中,“使用这个 SASS mixin”是啥意思?【英文标题】:What does "use this SASS mixin" mean in the context of Material Design Components?在 Material Design Components 的上下文中,“使用这个 SASS mixin”是什么意思? 【发布时间】:2020-06-09 19:11:43 【问题描述】:

我正在使用Material Design Components for Web 库。我有一个tab component,我想更改它的underline-color

说明书说

要自定义标签指示器,请使用以下 mixins。

然后它给出了一张桌子。对于下划线颜色,它说

underline-color($color) 自定义下划线的颜色。

所以,我在我的scss 文件中尝试以下内容:

  .mdc-tab-indicator 
      underline-color(red);
  

我编译我的 sass(使用 dart-sass)并得到以下错误

Error: expected "".

它说这是一个“Sass Mixin”。所以,我看看SASS documentation on mixins。我看不到任何遵循语法 mixin-name($variable) 的内容。里面的一切看起来都像

@mixin reset-list 
  margin: 0;

带花括号,而不是括号。但是,错误说它需要一个花括号,而且显然@ 符号是必需的。所以,我试试:

  .mdc-tab-indicator 
      @underline-color(red);
  

这不会引发错误,但不会导致下划线颜色发生变化。我尝试遵循 sass 文档的语法:

  .mdc-tab-indicator 
      @underline-color(red);
  

没有错误,但没有颜色变化。我尝试更好地匹配语法:

  .mdc-tab-indicator 
      @mixin underline-color(red);
  

这会抛出

Error: expected ")".

我试试

  .mdc-tab-indicator 
      @mixin underline-color(red);
  

同样的错误。

我不明白材料组件文档的说明。当它说“要自定义选项卡指示器,请使用以下混合”时是什么意思。 ?如何更改 Material Design Component 选项卡指示器的下划线颜色?

【问题讨论】:

【参考方案1】:

使用@mixin at 规则定义混合,写成@mixin ... 或@mixin name() ... 。 mixin 的名称可以是任何 Sass 标识符,并且它可以包含除***语句之外的任何语句。它们可用于封装可放入单个样式规则中的样式;它们可以包含自己的样式规则,可以嵌套在其他规则中或包含在样式表的顶层;或者它们可以只用于修改变量。

使用@include at-rule 将mixin 包含到当前上下文中,该规则写成@include 或@include (),并带有被包含的mixin 的名称。

所以,要包括您的特定 mixin 使用:

.mdc-tab-indicator 
      @include underline-color(red);
  

在https://sass-lang.com/documentation/at-rules/mixin查看更多信息

【讨论】:

以上是关于在 Material Design Components 的上下文中,“使用这个 SASS mixin”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

Material Design学习笔记

Material Design

新建一个Material Design工程

Design Support Library(支撑Material Design)

android material design

使用 Material Design 组件实现 Material 动效