css - CSS 变量和不透明度
问题描述
一个简单的问题,答案可能是“否”,但我是 CSS 变量的新手,所以我不确定。
如果我想定义颜色并且以后能够为其添加 alpha 通道,那么我唯一的 CSS 变量选择是将其定义为 RGB 通道的 3 个数字:
--color: 12 12 12
后来总是与rgb
or一起使用它rgba
?
color: rgb(var(--color));
background: rgba(var(--color), .5);
真的没有办法定义一个实际的颜色,然后只使用 CSS 变量添加 alpha 吗?可能我最好的选择是定义 2 个变量:
--color-rgb
和--color: rgb(var(--color-rgb))
解决方案
你差不多好了,你只需要注意语法:
: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>
推荐阅读
- java - Android AsyncTask API 在 Android 11 中弃用,使用 Executor 作为替代
- javascript - OpenPGP js 在消息解密时返回 [object Object]
- bash - 如何使用 macOS bash 获取完整文件名的路径部分?
- xslt-1.0 - 多个实体处每个循环的 jdeveloper XSLT 中断
- laravel - 使用 Laravel Cashier 的 3D Secure on Stripe 价格不正确
- pandas - 使用 pandas 数据帧的多处理挂起在 queue.get() 和 pool.map()
- paypal - PayPal IPN 有时不更新数据库
- apache-spark - 按 desc 排序数据框列导致分析异常 [Pyspark]
- python - 使用 Keras 微调通用句子编码器
- python - 如果单词的节点没有被 Trie 结构中的另一个单词使用,则删除它们