このソリューションは優れていますが、すべてのコンポーネントで使用可能な一般的なスタイルに適しています。たとえば、CSSグリッドのスタイル。
`@Component({
selector: 'my-app',
template: ` `,
styleUrls: ["shared.style.css"],
encapsulation: ViewEncapsulation.None
}) export class App {}`
Demo could be found here (plunker)
注:この方法によって含まスタイル、(単にスタイルのタグを追加する、または非カプセル化)が影響しますあなたは誰にも負けないあなたのアプリコンポーネントにカプセル化を設定することができ、それがよりangularishようにするに あなたのページのすべての要素。時には私たちが本当に望んでいることがあります(穴プロジェクトのためのcssフレームワークを使用することで合意しました)。しかし、単にいくつかのコンポーネントの間でスタイルを共有したい場合は、おそらく最善の方法ではありません。
Summary:
(+) easy to use
(-) no encapsulation
2.、それは非常に理解し、予測可能な動作を持っているので、私は、このソリューションが好きです。 しかし、それには1つの問題があります:
これは、使用するたびに共有スタイルでスタイルタグを追加します。 大きなスタイルのファイル、またはそれを使用している多くの要素があると問題になる可能性があります。

@Component({
selector: 'first',
template: `<h2> <ng-content> </ng-content> </h2>`,
styleUrls: ["shared.style.css"]
})
export class FirstComponent {}
Demo could be found here (plunker)
Summary:
(+) easy to use
(+) encapsulation
(-) duplicates styles for every usage
3.あなたが使用できる1つの以上のオプションがあります。 子供用の共有スタイルを提供するコンポーネントをもう1つ作成するだけです。また
:host /deep/ h2 {
color: red;
}
私が使用することを忘れないように言及される価値がある:あなたが子コンポーネントのスタイルを利用できるように、あなたのスタイルに/深い/使用する必要がありますそれらの場合
` <styles-container>
<first> first comp </first>
</styles-container>
<styles-container>
<second> second comp </second>
</styles-container>`
ホストが作りますスタイルは利用可能子要素のためののみ。これを省略すると、もう1つのグローバルスタイルが得られます。
Demo could be found here (plunker)
Summary:
(-) you have to create container and it in templates
(+) encapsulation
(+) no duplicated styles
注:スタイルのカプセル化は本当にクールな機能です。しかし、深いスタイルを制限する方法がないことを覚えておく必要があります。だから深いスタイルを適用する場合、それはすべての子供に絶対に利用可能なので、それも注意して使用してください。