2017-12-10 8 views
2

ための集中CSS/SCSSをロードしないための方法は、特定のコンポーネントの集中CSS/SCSSをロードしないようにする方法があります。角度CLIアプリケーションで特定の成分

"apps": [ 
    { 
     "root": "src", 
     .... 
     .... 
     "styles": [ 
     "styles.scss", 
     "../node_modules/firebaseui/dist/firebaseui.css" 
     ], 
    ] 

しかし、私はそのそれらをオーバーライドすることによって、すべての私のスタイルを台無しとしてstyles.scssロードしたくない一つの成分について: .angular-cli.jsonはこのようになります。これを修正するための回避策/ハックがあります。

+0

は、あなたのコンポーネントのスタイルはグローバルスタイルスコープの一部ではなく、[このドキュメントのセクション](https://angular.io/guide/component-styles#で説明したようにグローバルCSSスタイルによって影響されるべきではありませんスタイルスコープ)。生成されたCSSでデバッグを試みましたか?おそらく、正確に問題が発生した実際のコンポーネントのコードサンプルと場所が役立つだろう。 –

答えて

0

あなたはコンポーネントselectorに含めることができます -

encapsulation: ViewEncapsulation.None 

参考リンク: - https://blog.thoughtram.io/angular/2015/06/29/shadow-dom-strategies-in-angular2.html

スタイルは、すべての中央集権のスタイルの後、最後にロードされているコンポーネントがロードされているので、component.cssは、親をオーバーライドすることができます。 cssでもparent.cssはcomponent.cssを上書きできません。コンポーネント自体にオーバーライドされない場合は、集中型(親)CSSは、アプリケーション全体に適用されます。

0

私は考えることができる唯一の方法は、そのコンポーネントがViewEncapsulation.Nativeを使用するようにすることです。

本当にあなたのコンポーネントをカプセル化することを意図している真の影のDOMを使用するアンギュラ Native

ので、何のスタイルはブリードアウトしないだろうし、先祖からのスタイルはに注入されません。

をただし、あなたが制限を理解しておいてください。

デフォルトで
関連する問題