有没有一种方法可以在Angular2组件内的ng内容中使用css?

有没有一种方法可以在Angular2组件内的ng内容中使用css?,css,angular,styles,angular2-ngcontent,Css,Angular,Styles,Angular2 Ngcontent,我试图通过ng content将css for children元素包含在组件中。它似乎还没有在Angular 2中实现,或者可能有人已经找到了一个解决方案,除了将css放在通用样式表中 app.component.ts <comp-parent> <comp-child></comp-child> </comp-parent> <div class="wrapper"> <ng-content></ng-c

我试图通过
ng content
将css for children元素包含在组件中。它似乎还没有在Angular 2中实现,或者可能有人已经找到了一个解决方案,除了将css放在通用样式表中

app.component.ts

<comp-parent>
  <comp-child></comp-child>
</comp-parent>
<div class="wrapper">
  <ng-content></ng-content>
</div>
.wrapper > comp-child {
   margin-right: 5px; <-- Not applied !!!
}
compParent.component.css

<comp-parent>
  <comp-child></comp-child>
</comp-parent>
<div class="wrapper">
  <ng-content></ng-content>
</div>
.wrapper > comp-child {
   margin-right: 5px; <-- Not applied !!!
}
.wrapper>复合子项{

右边距:5px;您可以使用
/deep/
(已弃用)或
>
:ng deep
选择器:

例如:

.wrapper ::ng-deep comp-child { ... }

请注意,
>
似乎不适用于基于angular cli的项目。

将类应用于将要呈现的html

 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;
}
app.component.ts
@组成部分({
选择器:“组件父级”,
模板:`
`          
})
导出类CompParent{}
@组成部分({
选择器:'comp child',
模板:`
`,
})
导出类CompChild{}
///在styles.css中
.wrapper.comp子项{
左边距:50像素;
}

这在我的项目中对我很有用。

是您的组件。请改为放置HTML元素。例如,您的组件将被具有另一个组件的模板替换。请使用将在DOM中实际呈现的HTML元素。“…除了将css放在通用样式表中?”;-)。当然,这在styles.css中是有效的。实际上,如果您添加:host以使用/deep/,这似乎是有效的。请注意/deep/处于弃用状态