动态更改 Angular 中的字体、背景颜色

发布于 2025-01-13 06:13:28 字数 251 浏览 0 评论 0原文

我们有一个使用 Angular 9 构建的 Web 应用程序。它的标题、边框和一些菜单背景的颜色存储在 css 文件中的多个位置。

要求是根据客户品牌改变这些。因此,如果 ClientA 登录,他们应该开始看到这些颜色为 #FF0000,如果 ClientB 登录,他们需要看到这些颜色为 #00FF00。

除了使用 style="color:{{clientColor}} 对每个 html 进行内联样式之外,您能帮忙建议最好的方法吗?

谢谢!

We have a web application built using Angular 9. It has colors for headers, borders and some menu backgrounds stored in multiple places in css files.

The ask is to change those as per client branding. So if ClientA logs in, they should start seeing those colors as #FF0000 and if ClientB logs in, they need to see those colors as #00FF00.

Other than inline styling every html with style="color:{{clientColor}} can you help suggest the best way to do this?

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

失而复得 2025-01-20 06:13:28

您可以尝试使用 :root 选择器和其中的变量,对于 body 标记,只需覆盖这些根变量,工作示例如下:stackblitz

styles.scss:

:root {
  --fontColor: #000;
}

.theme-dark {
  --fontColor: red;
}

app.component.ts

export class AppComponent  {
  theme = 'theme-dark';

  toggle(): void {
    const body = document.body;

    if (body.classList.contains(this.theme)) {
      body.classList.remove(this.theme);
    } else {
      body.classList.add(this.theme);
    }

  }
}

app.component.html

<p>
  Start editing to see some magic happen :)
</p>

<button (click)="toggle()">Toggle color font</button>

应用程序组件.scss

p {
  font-family: Lato;
  color: var(--fontColor);
}

You can try to use :root selector and variables in it, and for body tag just overwrite these root variables, working example here: stackblitz

styles.scss:

:root {
  --fontColor: #000;
}

.theme-dark {
  --fontColor: red;
}

app.component.ts

export class AppComponent  {
  theme = 'theme-dark';

  toggle(): void {
    const body = document.body;

    if (body.classList.contains(this.theme)) {
      body.classList.remove(this.theme);
    } else {
      body.classList.add(this.theme);
    }

  }
}

app.component.html

<p>
  Start editing to see some magic happen :)
</p>

<button (click)="toggle()">Toggle color font</button>

app.component.scss

p {
  font-family: Lato;
  color: var(--fontColor);
}
注定孤独终老 2025-01-20 06:13:28

你可以使用这个:

[style.color]="clientColor"

You can use this:

[style.color]="clientColor"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文