css - 如何在子组件中使用相同的 CSS 变量名
问题描述
嘿,我彼此之间有多个组件。
我希望它们都有 CSS 变量 --border-radius 并将值传递给子组件的变量。
我有 4 个组件,但对于这个示例,我将其简化为 2 个组件来说明我的问题。
组分 A
:host{
--border-radius: 50%;
border-radius: var(--border-radius);
component-b {
--border-radius: var(--border-radius);
}
}
B组份
:host{
--border-radius: 0;
border-radius: var(--border-radius);
}
当我在浏览器中检查组件 B 时,我看到它的边界半径设置为“var(--border-radius)”而不是预期的“50%”。
有没有办法做到这一点?
编辑:注意组件 A 和组件 B 都是独立组件,应该能够采用 CSS 属性 --border-radius 。问题在于将变量属性传递给具有相同变量名称的下一个组件。
解决方案
好的,所以在考虑了 CSS 是如何工作的一段时间后,它会将样式级联下来……我得出的结论是我错误地考虑了变量。
它的工作方式是:
组件A定义--border-radius为10px;
组件 B 没有定义它,但如果存在则使用它,否则使用默认值。通过不在 B 的开头定义它,它将自动从 A 级联下来。
组分 A
:host {
--border-radius: 10px;
border-radius: var(--border-radius);
}
B组份
:host{
border-radius: var(--border-radius, 0);
}
在该示例中,B 将默认为 0,但接受 A 的 10px 或您直接传递给 B 的任何其他值。
推荐阅读
- ssl - 使用 TLS 和 mosquitto 运行 mosquitto 代理时遇到错误
- debugging - 运行 SIGSEGV 处理程序的所有线程崩溃
- php - 解析错误:语法错误,意外的 ']',在第 17 行...中需要 '-' 或标识符(T_STRING)或变量(T_VARIABLE)或数字(T_NUM_STRING)
- rest - 用于 id 大于 10 位的更新操作的 Coupa api
- c - 堆栈伪代码比较
- apache-spark - 我有一个表格将表格作为数据框所需的答案在 spark scala 中
- angular - Angular 6 创建动态 css 类
- json - 如何处理 json 文件并在 django 中以图表的形式显示一些数据
- mysql - 下载 mysql api-ms-win-crt-runtime-l1-1-0.dll 时出错
- python - 新手 - Heroku 站点中的应用程序入门