亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

組件從其他組件繼承 CSS

組件從其他組件繼承 CSS

子衿沉夜 2023-08-21 17:21:57
我的組件有問題: 1. 由于某種原因,我無法在 signin.component.css 中設置 html 和 body 的樣式 我發現的解決方案是使用:encapsulation: ViewEncapsulation.None ==> This works perfect但是,當我更改視圖時,例如:home,signin.component.css 被繼承到 home 組件中。難道是有什么問題嗎?或者有人知道如何在 css 組件中設置 html 和 body 的樣式嗎?提前致謝。
查看完整描述

2 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

改變封裝很少是一件好事。我將創建一個狀態服務來更改組件的類和樣式。


它應該看起來像這樣


服務


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


@Injectable()

export class StyleService {

    private className: Subject<string> = new Subject<string>();

    public className$: Observable<string> = this.className.asObservable();


    set(className: string): any {

        this.className.next(className);

    }

}

為了聆聽變化


...

private sub: Subscription;

...

this.sub = this.styleService.className$

    .subscribe(class => {

        // do what you need to do

    })

...

ngOnDestroy() {

    // so you dont have memory leaks

    this.sub.unsubscribe();

}

當您想更改類時,您只需調用 set 函數即可。唯一缺少的是在主樣式文件中聲明類。


如果您需要有一個 className 初始值,您可以使用BehaviorSubject,如下所示:


private class: BehaviorSubject<string> = new BehaviorSubject<string>('className');


查看完整回答
反對 回復 2023-08-21
?
UYOU

TA貢獻1878條經驗 獲得超4個贊

我自己發現了這個問題


感謝所有幫助過我的人。


問題是無法在組件 css 中編輯 html 和 body html 標簽。正確的方法是刪除 ViewEncapsultation 并將以下代碼行添加到構造函數中。


document.body.style.backgroundImage = 'url(\'../../../assets/images/background.jpg\')';

document.body.style.backgroundSize = 'cover';

document.body.style.backgroundRepeat = 'no-repeat';

document.body.style.height = '100%';

這是您在每個組件中設置 html 和 body 標簽樣式的方法。如果您需要設計整個背景的樣式,這也適用。


查看完整回答
反對 回復 2023-08-21
  • 2 回答
  • 0 關注
  • 141 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號