2016-10-21 8 views
4

私は、外部コンポーネントのカプセル化されたCSSをどのように上書きするのかと思いました。外部コンポーネントのカプセル化されたCSSをオーバーライドする

私のプロジェクトでmaterial2を使用しています。タブコンポーネントには、属性オーバーフローがtab-bodyに設定されています。オーバーフロー値をオーバーライドすることは可能ですか?

+0

はい。オーバーフローを適用するよりも高い特異性を持つCSSセレクタを作成します。 – hungerstar

+0

しかし、それは生成された要素をオーバーライドしません。まだスタイルを持っています –

答えて

6

特別なCSS /deep/命令を使用することができます。 See the documentation

だから、あなたは

app sub-component target-component <div class="target-class">...</div>

を持っている場合は、アプリのCSS(以下)に置くことができます。

明らか

/deep/ .target-class { width: 20px; background: #ff0000; }

、あなたはsub-componentで、このCSSフラグメントを置くことができます同じように。

+3

'/ deep /'は推奨されず、サポートは[主要なブラウザから削除されました](https://www.chromestatus.com/features/6750456638341120)です。 [Angular documentation](https://angular.io/guide/component-styles#deprecated-deep--and-ng-deep)を参照してください。ですから、あなたのCSSに 'target-class'という名前のクラスを記述し、上書きされたプロパティを[!important](https://developer.mozilla.org/en-US/docs/Web/)にマークすることをお勧めしますCSS/Specificity#The_!important_exception)属性を使用します。 –

0

外部コンポーネントによってタブに適用されているクラスをチェックします(インスペクタまたは他のツールを使用)。あなたのスタイルのCSSファイルでは、タブのクラスの同じ名前を追加し、オーバーフロープロパティを設定して、それに重要なものを追加して、前の名前を上書きするようにします。また、ページへのあなたのCSSのリンクが、もしあれば外部のコンポーネントのCSSのリンクの後に追加されていることを確認してください。

これが役に立ちます。

関連する問題