Angular2组件的样式未在封装的子组件中继承

Vineet'DEVIN'Dev

我正在编写两个组件-ComponentAComponentB,其中ComponentA包含封装ComponentB他们两个都有一个p标签。在我的作品中ComponentA,我正在编写样式:p { color:red }在我的@Component装饰器中。ComponentAp更改为红色,但ComponentB的颜色保持黑色。

我认为这是一个需要解决的错误。

贡特·佐赫鲍尔(GünterZöchbauer)

样式封装(防止样式渗入或渗出组件)是Angular组件的主要功能。

有多种选择来实现您想要的

@Component({
  selector: 'component-b',
  styles: [`
    p { color: red; }
  `]
  ...
  encapsulation: ViewEncapsulation.None
})

或者您可以更改CSS选择器以使用最近推出的(仅适用于Angular2的)阴影穿刺CSS组合器来跨组件边界 >>>

@Component({
  selector: 'component-b',
  styles: [`
    :host ::ng-deep p { color: red; }
  `]
  ...
})

第二种方法适用于默认封装(ViewEncapsulation.Emulated)。
您不能将::ng-deep>>>)与一起使用encapsulation: ViewEncapsulation.Native从Chrome中删除了
>>>(或等效/deep/)的支持,而其他浏览器从未真正支持过。

提示 似乎比 SASS早前引入支持此Angular功能的SASS 更好 (当对SASS的支持从SASS中删除时)
/deep/ >>>
::ng-deep/deep/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular2组件-动态内联样式

来自分类Dev

输入的Angular 2组件样式

来自分类Dev

可重用angular2组件的扩展/覆盖样式

来自分类Dev

Angular 2组件作用域样式

来自分类Dev

Angular 2组件作用域样式

来自分类Dev

如何从Angular 2组件中更改CSS样式

来自分类Dev

尝试在angular2组件中使用exportAs

来自分类Dev

CodeMirror作为Angular2组件

来自分类常见问题

Angular2组件@Input双向绑定

来自分类Dev

Angular2组件模板与视图模板

来自分类Dev

Angular2组件::按类的ViewChild / ContentChild

来自分类Dev

Angular2组件是单向绑定还是输入?

来自分类Dev

以编程方式插入不同的Angular2组件

来自分类Dev

使用javascript协调angular2组件

来自分类Dev

获取传递到Angular2组件的数据

来自分类Dev

HTML代码形式Angular2组件属性

来自分类Dev

如何使angular2组件ng无效

来自分类Dev

测试使用setInterval或setTimeout的Angular2组件

来自分类Dev

Angular2组件构造函数未调用

来自分类Dev

CodeMirror作为Angular2组件

来自分类Dev

尝试在angular2组件中使用exportAs

来自分类Dev

使用javascript协调angular2组件

来自分类Dev

如何使angular2组件ng无效

来自分类Dev

JS中的Angular2组件通信

来自分类Dev

向服务订阅多个Angular2组件

来自分类Dev

从VisJS Event调用Angular2组件函数

来自分类Dev

Angular2 Dart-在Angular2组件中获取文本

来自分类Dev

Angular2 Dart-在Angular2组件中获取文本

来自分类Dev

ngClick事件未在Angular 1.5.5组件中触发