javascript - 模板JS | 将宿主样式应用于组件
问题描述
我正在尝试从包含 stencilJS 组件的网站应用样式......但不知道如何。
import { Component } from '@stencil/core';
@Component({
tag: 'menu-component',
styleUrl: 'menu-component.css',
shadow: true
})
export class MyComponent {
render() {
return (
<div>
<h1>Hello World</h1>
<p id="red">This is JSX!</p>
</div>
);
}
}
该组件包含如下:
<link rel="stylesheet" href="css/main.css" type="text/css" />
<script src='https://unpkg.com/component@0.0.2/dist/mycomponent.js'></script>
<my-component></my-component>
在我的 main.css 文件中,我有这样的东西:
#red{
color: red;
}
我希望将样式应用于模板组件中的元素。这可能吗?
解决方案
您可以为此使用css 变量。查看以下代码示例:
索引.html
<my-component style="--text-color:red;"></my-component>
我的组件.css
#red {
color: var(--text-color, black);
}
在组件的样式中,您将 CSS 变量作为值分配给 class 的文本颜色[id="red"]
。在您的应用程序中,您现在可以通过设置变量的值来更改颜色。
推荐阅读
- java - Windowbuilder 中的 Windows 样式
- java - 通过注解查找匿名类
- django - 运行 Gunicorn 的自定义 systemd 服务不起作用
- jenkins - 在 jenkins 中存储文件的优化替代方案
- javascript - Gcloud API file.save() 数据格式
- javascript - 反应元素位置的 UseRef 和 forwardRef 问题
- c# - 如何将 Blazor WebAssembly 连接到数据库
- if-statement - 有人知道如何在 Atmega328p 的汇编中执行 if 语句吗?
- swift - 数据的自定义编码器
- angularjs - 使用 Angular JS 在高图表上绘制两条带有 JSON 数据的线的问题 - 名称未定义