css - SASS 简单函数将 HEX 颜色转换为 RGB 作为不带 alpha 的字符串
问题描述
我正在寻找 SASS 中的简单函数,该函数只需将 HEX 颜色转换为 RGB 作为字符串。我在谷歌上搜索,但没有幸运。也许是因为 SASS 中没有任何原生函数?当然,有rgba()
功能,但我不想rgba(
……)
一块。简单的RGB字符串。
例子
输入
$color-bg: #637b9a;
$color-bg-light: lighten($color-bg, 25%);
$color-bg-light-rgb: hex2rgb($color-bg-light); // Functon that I am looking for
:root {
--color-body-bg-light: $color-bg-light;
--color-body-bg-light-rgb: $color-bg-light-rgb;
}
body {
color: var(--color-body-bg-light);
background-color: rgba(var(--color-body-bg-light-rgb), 0.8);
}
输出
:root {
--color-body-bg-light: #237b9a;
--color-body-bg-light-rgb: 44, 123, 154;
}
body {
color: var(--color-body-bg-light);
background-color: rgba(var(--color-body-bg-light-rgb), 0.8);
}
解决方案
你可以这样写函数:
@use "sass:color";
@function hex2rgb($hex) {
@return red($hex), green($hex), blue($hex);
}
但问题是 sass 无法解析 html 自定义属性的变量。所以这条线--color-body-bg-light: $color-bg-light;
行不通。
最后,你会得到这个:
:root {
--color-body-bg-light: $color-bg-light;
--color-body-bg-light-rgb: $color-bg-light-rgb;
}
推荐阅读
- go - Visual Studio 代码无法安装 Go 工具
- javascript - 我们无法注册默认服务工作者
- vb.net - 绑定到数据表后,组合框不显示 SelectedValue
- vue.js - 有没有办法在vue中获取router.back的url?
- html - Google 的 data-nosnippet 是否打破了“data-”属性前缀的约定?它是第一个这样做的吗?
- c# - 需要有关 Unity2D Android 的 C# 脚本的帮助或建议,关于广告。Unity 建议我的代码已过时
- python - 强制 Dlib python 仅在 CPU 支持下安装;在带有 Cuda 和一切的 GPU 机器上
- wpf - WPF Listview 可以在布局中嵌入不同高度的元素吗?
- php - 邮件未到达特定收件人
- javascript - Javascript对象循环搜索数据