【问题标题】:How to swap values of two CSS variables? [duplicate]如何交换两个 CSS 变量的值? [复制]
【发布时间】:2019-04-10 01:51:12
【问题描述】:

假设我有两个 css 变量,control-colorcontrol-color-inverse。我想制作一个<div>,其中所有颜色都被反转了。但这似乎无法正常工作:

* {
  background-color: var(--control-color);
  color: var(--control-color-inverse);
}

:root {
  --control-color: gainsboro;
  --control-color-inverse: black;
}

#child {
  --control-color: var(--control-color-inverse);
  --control-color-inverse: var(--control-color);
}
<div id="parent">
  <p>not themed</p>
  <div id="child">
    <div id="grandchild">
      <p>themed</p>
    </div>
  </div>
</div>

例如,在这个 sn-p 中,div#child 应该有黑色背景和灰色文本。但似乎我最终得到了一个循环引用,它取消了。我怎样才能完成我想做的事情?

【问题讨论】:

  • 尝试在要应用这些变量的 div 的父级中添加这些行
  • @vaibhavkumar 我用示例更新了我的问题;这不起作用

标签: css css-variables


【解决方案1】:

我认为你可以做到这一点

#child {
  background-color: var(--control-color-inverse);
  color: var(--control-color);
}

或者你可以使用其他变量名

#child {
  --child-control-color: var(--control-color-inverse);
  --child-control-color-inverse: var(--control-color);
}

【讨论】:

  • 但我希望我的所有元素都使用来自 CSS 变量的配色方案。 #child 内的任何元素仍将使用原始变量,其颜色没有改变,因此它们的主题不会被反转。
猜你喜欢
  • 2018-07-20
  • 1970-01-01
  • 2018-11-07
  • 2023-03-21
  • 2014-02-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-18
  • 1970-01-01
相关资源
最近更新 更多