nested - 没有重新计算 HSL 的 CSS 变量
问题描述
情况
我的 CSS 文件中有以下定义(简化)。
:root {
--app-color-hue: 30;
--app-color: hsl(var(--app-color-hue), 80%, 60%);
}
body {
--app-color-hue: 145;
background: var(--app-color);
}
我希望在app-color
整个应用程序中使用 CSS 变量并通过--app-color-hue
. 但是,该body
元素显示为Orange (30)而不是Green (145)。
当我hsl
在值中设置自己时,颜色更新得很好。
body {
background: hsl(var(--app-color-hue), 80%, 60%);
}
代码笔: https ://codepen.io/Dyljyn/pen/BaNVwqE
可能的解释
我假设问题是hsl
确实检测到更改并且当其中的 CSS 变量在另一个元素中更新时不会重新计算。
问题
有没有人对这个问题有更多的了解?
如果它被认为是错误,我也不知道如何将其报告为错误。因此,我也很感激有人指出我在这方面的正确方向。
解决方案
我自己找到了答案。
自定义属性的范围仅限于声明它们的元素,并参与级联:此类自定义属性的值是由级联算法决定的声明的值。
来源:https ://developer.mozilla.org/en-US/docs/Web/CSS/--*
所以我的“可能的解释”是设计使然,因此不是错误。
推荐阅读
- odoo - 是否可以在 odoo.fields.HTML 中使用 Javascript?
- python - Python 套接字服务器脚本
- javascript - PHP 回显未显示在 DIV 中
- python - 图像分类+定位
- android - 将 sdk 版本从 28 升级到 29 时遇到错误
- amazon-web-services - aws s3 中的长轮询可用吗?
- eigen - vectorXd from_json()?
- c++ - 如何在boost C++中对具有多个参数的函数使用二分法
- python - ImportError:无法导入名称(未知位置)
- emacs - 用于 Windows 10 组织模式的 emacs 27.1 在首次加载期间无法正常工作(Shell 命令成功但没有输出)