J'ai essayé d'inclure l'élément CSS pour les enfants inclus dans un composant via ng-content
. Il semble qu'il ne soit pas encore implémenté dans Angular 2 ou peut-être que quelqu'un a une solution sauf pour mettre css dans une feuille de style générale?
app.component.ts
<comp-parent>
<comp-child></comp-child>
</comp-parent>
compParent.component.html
<div class="wrapper">
<ng-content></ng-content>
</div>
compParent.component.css
.wrapper > comp-child {
margin-right: 5px; <-- Not applied !!!
}
Vous pouvez utiliser /deep/
(obsolète) ou >>>
ou ::ng-deep
sélecteur:
https://angular.io/guide/component-styles#deprecated-deep--and-ng-deep
Par exemple.:
.wrapper ::ng-deep comp-child { ... }
Notez que >>>
semble ne pas fonctionner pour les projets basés sur angular-cli.
Appliquer des classes au html qui va être rendu.
app.component.ts
<comp-parent>
<comp-child></comp-child>
</comp-parent>
@Component({
selector: 'comp-parent',
template: `
<div class="wrapper">
<ng-content></ng-content>
</div>
`
})
export class CompParent { }
@Component({
selector: 'comp-child',
template: `
<div class="comp-child">
<div>
</div>
</div> `,
})
export class CompChild {}
/// In styles.css
.wrapper .comp-child {
margin-left: 50px;
}
Cela a fonctionné pour moi dans mon projet.