css 如何在Angular2中更改不同组件的背景颜色?

3j86kqsm  于 2023-08-09  发布在  Angular
关注(0)|答案(5)|浏览(140)

在Angular2应用程序中,我经常遇到一个问题,即设置页面的背景颜色或图像。在应用程序中,如果我在styles.css中提到一种特定的颜色作为背景,那么这种颜色将应用于我开发的所有页面,因为它将全局应用样式。现在,如果我的登录页面是蓝色的,我想改变我的主页的背景颜色为白色,我该怎么做?因为在组件Homepage中,我们有:html和homepage.component.css。在homepage.component.css中,css只影响主页的元素。我不能改变整个页面的颜色或添加一个图像作为整个页面的背景,因为body { ... }将无法在那里工作。@import url也不起作用。
如何更改Angular2应用中不同组件的背景颜色?
如有任何帮助,我们将不胜感激。- 谢谢-谢谢

2w3rbyxf

2w3rbyxf1#

这里有另一个解决方案。这可能有点基础,限制或黑客,但它工作:

style.css

body, html {
   padding: 0;
   width: 100vw;
   height: 100vh;
   ...
 }

.my-container{
  width: 100vw;
  height: 100vh;
  ...
}

字符串

home.component.css

.my-container{
    background-color: red;
 }

home.component.html

<div class="my-container">
   ...
   /* the content of your component here */
</div>

login.component.css

.my-container{
    background-color: blue;
 }

login.component.html

<div class="my-container">
   ...
   /* the content of your component here */
</div>


等等。

ghhaqwfi

ghhaqwfi2#

import { ViewEncapsulation } from '@angular/core';

@Component({
  encapsulation: ViewEncapsulation.None,

})

字符串
要覆盖styles.css中的样式并为组件指定特定的样式,请将ViewEncapsulation as none添加到组件中并导入正确的类,它将工作。

68bkxrlz

68bkxrlz3#

您可以使用:host选择器在宿主组件的模板中应用样式,该模板是当前组件的父模板。在你的组件的css中,试试这个:

:host .my-app-class {
    background-color: white;
}

字符串

jvidinwx

jvidinwx4#

这是我的解决方案。

style.css

.login-page {
    height: 100%;
      background-repeat: no-repeat;
      background-image: linear-gradient(rgb(104, 145, 162), rgb(12, 97, 33));
}

字符串

login-home.component.ts

关注OnInitOnDestroy函数

import { Component, OnInit, OnDestroy } from '@angular/core';

@Component({
  selector: 'app-login-home',
  templateUrl: './login-home.component.html',
  styleUrls: ['./login-home.component.css']
})
export class LoginHomeComponent implements OnInit, OnDestroy {
  // Search the tags in the DOM
  bodyTag: HTMLBodyElement = document.getElementsByTagName('body')[0];
  htmlTag: HTMLElement = document.getElementsByTagName('html')[0];

  constructor() {

  }

  ngOnInit() {
    // add the css-style to the html and body tags
    this.bodyTag.classList.add('login-page');
    this.htmlTag.classList.add('login-page');
  }

  ngOnDestroy() {
    // remove the the body classes
    this.bodyTag.classList.remove('login-page');
    this.htmlTag.classList.remove('login-page');
  }

}

bwleehnv

bwleehnv5#

我也遇到了这个问题,我找到了解决办法。
转到您的component.ts文件,并将这段代码添加到@component下的styleUrls下面。

/../
   styleUrls: ['./xyz.component.css'],
   styles:[
       `
        :host{
            display:block; //can be anything except inline(default display)
            background-color: white; //any background color you want
        }
       `
   ]

字符串
它对我有效,希望它对你也有效。

相关问题