样式不适用于子组件

新手上路,请多包涵

我正在尝试将样式应用于子组件标签,但我不能这样做。

我有带有锚标记的子组件。

即使我在父组件中有锚标记的样式,它也不适用。它的解决方案是什么?

工作代码: http ://plnkr.co/edit/CJCpV4ZbG7hdxT2AeSmt?p=preview

  <a href="https://www.google.com">Google</a>

在父组件中,我使用子组件并为此子组件应用样式。

html代码:

 <div class="container">
  <div class="test">
    <testapp></testapp>
  </div>
</div>

CSS代码:

 .container{
  font-family:sans-serif;
  font-size:18px;
  border: 1px solid black;
}
.test{
  width:50%;
  background-color:#f0f5f5;
}

.container:hover .test{
  background-color:#e6ffe6;
}
.container:hover .test:hover{
  background-color:#ffffe6;
}
.container .test a {
    color:   red ;
}
.container .test a:hover {
    color:green;
}

原文由 Varun 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 399
1 个回答

这是因为默认组件具有视图封装(shadow dom)。要禁用此行为,您可以利用 encapsulation 属性,如下所述:

 import {Component, ViewEncapsulation} from '@angular/core';
import {TestApp} from 'testapp.component.ts';
@Component({
  selector:'test-component',
  styleUrls: ['test.component.css'],
  templateUrl: './test.component.html',
  directives:[TestApp],
  encapsulation: ViewEncapsulation.None // <------
})
export class TestComponent{

}

看到这个 plunkr: http ://plnkr.co/edit/qkhkfxPjgKus4WM9j9qg?p=preview。

原文由 Thierry Templier 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题