angular - 从组件访问 CSS 变量
问题描述
我想知道是否有任何解决方案可以从组件访问 CSS 变量。我正在构建一个自定义主题,我希望可以从 CSS 模板中更改一些图像,而不是将其添加到组件中。
例如:
我有一个 CSS 变量:
我的组件.scss
imagePath: 'src/assets/image.jpg'
我想从组件访问该变量:
我的组件.ts
export class MyComponent {
imagePath;
}
我的组件.html
<img src="{{ imagePath }}" />
解决方案
由于图像路径被定义为 CSS 变量,因此您可以直接从 HTML 模板访问它,而无需在 TypeScript 组件中定义任何内容。
但是您需要了解 CSS 变量的一个问题。它们只能用于 CSS 属性,不能用于 HTML 属性(如src=...
.
background
你可以通过使用css 属性来实现你想要的:
<div style="background: var(--image-path);"></div>
请注意,您对 CSS 变量的声明是不正确的。它应该以两个破折号开头,如下所示:
--image-path: url(...);
当然,您还需要确保 div 具有一定的宽度和高度,以便您可以看到背景。
演示
:root {
--image: url('http://placekitten.com/200/300');
}
div {
width: 200px;
height: 300px;
}
<div style="background: var(--image);"></div>
推荐阅读
- message-queue - TIBCO EMS 和 Solace EMS 之间的消息桥
- sql - 为什么我没有收到错误?数据库如何理解嵌套子查询中的相关列?
- .net - .Net - 在同一 IIS 上的两个 webapi 之间共享令牌
- javascript - Angular2中的通用变量名机制
- objective-c - 在 Objective-C 完成块内运行 C 回调函数
- java - 如何使用 mockito 模拟 java.util.base64 方法
- ios - 为 UINavigationBar 的标题设置没有特定大小的自定义字体
- r - 如何在 R 中的日期序列中包含年份值?
- c# - 来自 ajax 的 Web api Post 调用失败
- javascript - Angular 5 和 6 之间导入 javascript 库的差异 - 这是正确的语法