首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在angular 11中更改页面主题颜色?

如何在angular 11中更改页面主题颜色?
EN

Stack Overflow用户
提问于 2021-03-17 07:44:01
回答 1查看 452关注 0票数 0

我有一个angular 11应用程序,我从页面加载的API中获取品牌颜色。有了这个品牌的颜色,我想把它添加到我的应用程序的不同组件中,用于页眉、页脚和不同的按钮样式。我创建了一个全局的brand.scss,我想在这里改变这个文件的页眉和页脚的颜色。我可以通过app组件中的服务获取颜色,但如何将其导出到scss文件。有没有人能帮我一下?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-03-17 07:54:02

将颜色变量放入JS,并使用ngStyle进行绑定

app.component.ts

代码语言:javascript
复制
@Component({
  selector: 'app-root',
  template: `
    <h1>angular-dynamic-theme</h1>

    <div class="block primary-background">Primary</div>  <br>
    <div class="block secondary-background">Secondary</div>  <br>

    Set Primary Color: 
    <input type="text" [(ngModel)]="primaryColor"> <br>
    
    Set Secondary Color: 
    <input type="text" [(ngModel)]="secondaryColor"> <br>

    <button (click)="changeTheme(primaryColor,          secondaryColor)">Save</button>
  `,
   styleUrls: ['./app.component.scss']
})
export class AppComponent {
  primaryColor: string;
  secondaryColor: string;

  constructor() {
    this.changeTheme('red', 'yellow'); // Set default theme
  }

  changeTheme(primary: string, secondary: string) {
    document.documentElement.style.setProperty('--primary-color', primary);
    document.documentElement.style.setProperty('--secondary-color', secondary);
  }
}

app.component.scss

代码语言:javascript
复制
$primary: var(--primary-color);
$secondary: var(--secondary-color);

h1 {
  color: $primary;
}
h1:hover {
  color: $secondary;
}

.block {
  width: 100px;
  height: 100px;
}

.primary-background {
  background-color: $primary;
}

.secondary-background {
  background-color: $secondary;
}

但是,如果您使用的是角度材质,则可以更轻松地完成此操作。希望这篇文章能帮助你找到正确的方向

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66665050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档