如何从父组件的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 {
  // Styles for child
}

但是.child样式不会应用于子组件。

我试图使用styleUrls将父的样式表包含到子组件中以解决范围问题:

// child.component.ts
styleUrls: [
  './parent.component.css','./child.component.css',]

但这没有帮助,也尝试了另一种方式通过获取子样式表到父,但是没有帮助。

那么如何对包含在父组件中的子组件进行样式化?

解决方法

您可以使用封装模式和/或穿透CSS组合器>>>,/ deep /和:: 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>      
`

相关文章

前言 最近项目做完,用户需要兼容IE,于是开展了兼容性的调整工作。边调整边想感叹IE真是个沙雕。。特将...
前言 有些属性不是很常用,但是工作中遇到了,记录一下,方便学习。 1、text-indent text-indent 属性规...
前言 政府网站会遇到公祭日的时候,网站整体颜色变灰的情况。今天正好调了一下。在此把解决方案分享给大...
需求 项目里有个消息中心,当有消息的时候,小铃铛图标可以晃两下,提示当前有信息。 实现过程 书写css...
html代码 css代码 效果图
在一些界面上 , 如果每个icon都去找图片还是相当麻烦的 , 直接使用css画出icon就方便的多了 , 下面两个...