【问题标题】:CSS variables and opacityCSS 变量和不透明度
【发布时间】:2018-11-15 04:21:51
【问题描述】:

一个简单的问题,答案可能是“否”,但我是 CSS 变量的新手,所以我不确定。

如果我想定义颜色并且以后能够向其添加 alpha 通道,我唯一的 CSS 变量选择是将其定义为 RGB 通道的 3 个数字:

--color: 12 12 12

以后总是与rgbrgba 一起使用?

color: rgb(var(--color));

background: rgba(var(--color), .5);

真的没有办法定义一个实际的颜色,然后只使用 CSS 变量给它添加 alpha 吗?可能我最好的选择是定义 2 个变量:

--color-rgb--color: rgb(var(--color-rgb))

【问题讨论】:

  • 嗯,你可以用 rgba opacity 1 获得你的原始颜色

标签: css css-variables


【解决方案1】:

你已经差不多了,你只需要注意语法:

:root {
  --c:255,0 ,0;
  --o:0.5;
}
html {
  background:rgba(var(--c),var(--o));
}
body {
   background:rgb(var(--c));
   height:100px;
}
.box {
 --c:12,12,12;
 --o:0.7;
 background:rgba(var(--c),var(--o));
 color:#fff;
}
<div class="box">
  some content
</div>

您也可以单独定义每个通道:

:root {
  --r:255;
  --g:0;
  --b:0;
  --c:var(--r),var(--g) ,var(--b);
  --o:0.5;
}
html {
  background:rgba(var(--c),var(--o));
}
body {
   background:rgb(var(--c));
   height:100px;
}
.box {
 --c:12,12,12;
 --o:0.7;
 background:rgba(var(--c),var(--o));
 color:#fff;
}
<div class="box">
  some content
</div>

【讨论】:

    猜你喜欢
    • 2015-09-20
    • 2020-11-19
    • 2019-02-18
    • 1970-01-01
    • 2015-03-31
    • 2019-11-26
    • 1970-01-01
    • 2013-05-01
    • 2011-02-03
    相关资源
    最近更新 更多