[Angular] Modify :before / :after value from Javascirpt

Let's say we want to dynamiclly change some style in :before or :after element.

We cannot use NgStyle, it doesn's support this use case, what we can do:

Using css variable + setProperty

复制代码
import { Component, ElementRef, ViewChild } from '@angular/core';

@Component({
  selector: 'my-app',
  template: `
    <p #ref>
      Start editing to see some magic happen :)
    </p>
  `,
  styles: [ `
      :host {
        --color: blue;
      }
      p {
        font-family: Lato;
        color: green
      }
      p:before {
        content: 'content from :before';
        color: var(--color);
      }
  ` ]
})
export class AppComponent {
  @ViewChild('ref') p: ElementRef

  ngOnInit() {
    this.p.nativeElement.style.setProperty('--color', 'red')
  }
}
复制代码

 

posted @   Zhentiw  阅读(169)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2019-03-31 [PureScript] Break up Expressions into Cases in PureScript using Simple Pattern Matching
2019-03-31 [Docker] Hooking a Volume to Node.js Source Code
2016-03-31 [React] React Router: setRouteWillLeaveHook
点击右上角即可分享
微信分享提示