【问题标题】:Can not apply css to svg icon inside mat-icon无法将 css 应用于 mat-icon 内的 svg 图标
【发布时间】:2018-06-04 11:19:51
【问题描述】:

在 Angular 材质中设置 svg 图标的样式时遇到问题。

控制器:

mdIconRegistry.addSvgIcon('testAnimation', sanitizer.bypassSecurityTrustResourceUrl(`${svgPath}/icons/testAnimation.svg`));

模板:

<a class="icon"><md-icon svgIcon="testAnimation"></md-icon></a>

风格:

.icon .st9 {fill: black}

问题是这个 css 规则不适用于图标 - 我不知道为什么。

在我的 svg 图像中有一个带有此类的路径,可以通过 document.querySelectorAll('.icon .st9') 找到。我什至可以使用document.querySelectorAll('.icon .st9')[0].style.fill = 'black' 更改它的填充颜色。

当我在没有材料的情况下直接在 html 中插入 svg - 它也可以正常工作。

【问题讨论】:

标签: angular svg angular-material2


【解决方案1】:

在你的 component.css 文件中尝试一下

:host ::ng-deep .icon .st9 {fill: black}

或者把你的css规则放到style.css中,但是一定要封装组件的名字,保证不会泄露

app-your-component .icon .st9 {fill: black}

【讨论】:

  • 另一种方法是将 ViewEncasulation 更改为 none。我相信::ng-deep/deep/ 不会永远存在(我相信我至少在某个地方读到过)
猜你喜欢
  • 2021-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-05
  • 1970-01-01
  • 2019-08-02
  • 2019-08-07
相关资源
最近更新 更多