【问题标题】:Using SCSS variable inside CSS3 variable definition not working?在 CSS3 变量定义中使用 SCSS 变量不起作用?
【发布时间】:2018-05-25 17:13:56
【问题描述】:

我正在研究如何从客户端项目中将样式应用于可重用的 Angular 组件。见Theme/style Angular 2 reusable component libraries => 寻找“跟进”。

我现在还有一个问题:

我尝试在 CSS 变量中使用 SCSS 变量,但似乎没有定义该 CSS 变量:

$primary-color: #666666;

// styling reusable components
:root {
  --ang-ux-primary-color: $primary-color;
}

在其他组件中(在其他组件库中,单独构建):

$primary-color: var(--ang-ux-primary-color, #5FB0FD);

$primary-color 似乎是空的...不是#666666,也不是#5FB0FD。

【问题讨论】:

  • 已更改,谢谢 :-)
  • sass 中没有 var 这样的函数。在您的情况下,$primary 的值就是:var(--ang-ux-primary-color, #5FB0FD)。分配的样式是否无法呈现$primary-color? css 输出是什么?

标签: css variables sass


【解决方案1】:

要将Sass变量转换为CSS变量,需要interpolate it:

--ang-ux-primary-color: #{$primary-color};

一旦您将 Sass 变量转换为 CSS,就无法取回它。因此,在您的其他组件中,您可能应该坚持使用纯 CSS。如果--ang-ux-primary-color 未定义,以下将使用#5FBOFD

--ang-ux-primary-color: var(--ang-ux-primary-color, #5FB0FD);

【讨论】:

  • 不,这不是一个好的答案。带或不带插值的输出是相同的。这并不能回答问题。
  • 我充实了我的答案,以解决发帖人问题的第二部分。至于插值,我在CodePen上试过,是必须的。
  • 很好,但第一部分仍然是错误的。如果将变量用作属性值,则不需要插入变量。只需使用变量名:$primary
  • @muecas,所以你说我的解决方案 (--ang-ux-primary-color: $primary-color;) 应该可以工作?
  • 嗨,我想我需要审查我的项目,因为它似乎一切正常(在非常有限的设置中):plnkr.co/edit/13J7cMe5SatN76ySTtOQ
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-09
  • 2020-03-21
  • 2021-10-20
  • 2019-08-23
  • 2012-06-06
  • 1970-01-01
  • 2020-08-22
相关资源
最近更新 更多