[解決済み】親コンポーネントのCSSファイルから子コンポーネントのスタイルを設定する方法は?
質問
親コンポーネントがあるんだけど
<parent></parent>
そして、このグループに子コンポーネントを投入したいのです。
<parent>
<child></child>
<child></child>
<child></child>
</parent>
親テンプレートです。
<div class="parent">
<!-- Children goes here -->
<ng-content></ng-content>
</div>
子テンプレートです。
<div class="child">Test</div>
以降
parent
と
child
が2つの別々のコンポーネントである場合、それらのスタイルはそれぞれのスコープにロックされます。
親コンポーネントでは、こうしてみました。
.parent .child {
// Styles for child
}
しかし
.child
のスタイルが適用されません。
child
コンポーネントを使用します。
を使ってみました。
styleUrls
をインクルードするために
parent
のスタイルシートを
child
コンポーネントを使用することで、スコープの問題を解決することができます。
// child.component.ts
styleUrls: [
'./parent.component.css',
'./child.component.css',
]
しかし、これは役に立ちませんでした。また、他の方法で
child
スタイルシートを
parent
が、これもダメでした。
では、親コンポーネントに含まれる子コンポーネントは、どのようにスタイルを設定するのでしょうか?
解決方法は?
アップデート - 最新の方法
避けられるなら、やらないでください。Devon Sansがコメントで指摘しているように。この機能は、おそらく廃止されるでしょう。
最終更新日
から
アンギュラー4.3.0
から現在(Angular 12.x)まで、すべてのピアスCSSコンビネータは非推奨とされました。Angularチームは新しいコンビネーターを導入した。
::ng-deep
は、以下のようになります。
DEMO : https://plnkr.co/edit/RBJIszu14o4svHLQt563?p=preview
styles: [
`
:host { color: red; }
:host ::ng-deep parent {
color:blue;
}
:host ::ng-deep child{
color:orange;
}
:host ::ng-deep child.class1 {
color:yellow;
}
:host ::ng-deep child.class2{
color:pink;
}
`
],
template: `
Angular2 //red
<parent> //blue
<child></child> //orange
<child class="class1"></child> //yellow
<child class="class2"></child> //pink
</parent>
`
旧来の方法
を使用することができます。
encapsulation mode
および
piercing CSS combinators >>>, /deep/ and ::shadow
作業例 : http://plnkr.co/edit/1RBDGQ?p=preview
styles: [
`
:host { color: red; }
:host >>> parent {
color:blue;
}
:host >>> child{
color:orange;
}
:host >>> child.class1 {
color:yellow;
}
:host >>> child.class2{
color:pink;
}
`
],
template: `
Angular2 //red
<parent> //blue
<child></child> //orange
<child class="class1"></child> //yellow
<child class="class2"></child> //pink
</parent>
`
関連
-
[解決済み】Text-decoration: noneが機能しない。
-
[解決済み] このベベルボタンをCSSで実現するには?
-
[解決済み] アニメーションディレイが効かない
-
[解決済み] 子 div が親 div からはみ出さないようにする。
-
[解決済み] CSSの親セレクタはありますか?
-
[解決済み] CSSでテキストや画像の背景を透明にするには?
-
[解決済み] CSSの三角形はどのように機能するのですか?
-
[解決済み] How do I style a <select> dropdown with only CSS?
-
[解決済み] インラインCSSでa:hoverを記述するには?
-
[解決済み] .css()関数で追加したスタイルを削除するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Text-decoration: noneが機能しない。
-
[解決済み] リンクにアニメーションGIFを表示し、ホバーとリセットで再生する方法
-
[解決済み] font-face は OpenType 埋め込み許可チェックに失敗しました。パーミッションはインストール可能である必要があります。
-
[解決済み] DIVの背景色が表示されない
-
[解決済み] Bootstrapのポップオーバーの幅を変更する
-
[解決済み] ネストしたdivのcssを簡素化
-
[解決済み] svgの円のダブルストロークの色
-
[解決済み] 四角いボタンの作り方
-
[解決済み] ReactJSを使ったインラインのフォントサイズスタイルの生成
-
[解決済み】Angular 2 - innerHTML スタイリング