我有看起来像这样的DOM:
...
其中project
元件是由路由器插入.
如何向此元素添加类?
假设您始终希望将类应用于此组件,则可以host
在组件元数据中使用:
@Component({ selector:'project', host: { class:'classYouWantApplied` } })
导致:
...
关键是/ deep / keyword:
:host /deep/ router-outlet + project { display: block; border: 10px solid black; }
无需任何额外配置即可使用.
:host /deep/ router-outlet + *
对于由Angular Router动态创建的任何组件.
由于Angular 4.3.0被/deep/
弃用,其建议的替代方案是::ng-deep
.关于此问题进行了长时间的讨论.
使用adjacent sibling selector
和*
通配符选择紧随在之后的元素router-outlet
styles.css
router-outlet + * { /* your css */ }