Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 在另一个组件中以不同的方式设置子组件的样式_Angular_Typescript_Sass - Fatal编程技术网

Angular 在另一个组件中以不同的方式设置子组件的样式

Angular 在另一个组件中以不同的方式设置子组件的样式,angular,typescript,sass,Angular,Typescript,Sass,我正在尝试设置我的警报框的样式(来自bootstrap)[这也是一个组件],当它出现在我的一个组件中时,它会略有不同。对于其他地方,我想使用它的默认样式 我能够通过以下方式实现我想要的: 封装:视图封装。在父组件中无。然而,我真的很想避免它,并学会使用最佳实践 有谁能解释一下,在不修改封装的情况下,如何实现这一点 在一些帖子中,用户提到使用:host和::contentcss属性,但到目前为止,我无法使用它们 我相信这是一个非常常见的场景,应该有一个很好的方法来实现它。您可以在类似于家长的场景中

我正在尝试设置我的
警报
框的样式(来自bootstrap)[这也是一个组件],当它出现在我的一个组件中时,它会略有不同。对于其他地方,我想使用它的默认样式

我能够通过以下方式实现我想要的:

封装:视图封装。在父组件中无。然而,我真的很想避免它,并学会使用最佳实践

有谁能解释一下,在不修改
封装的情况下,如何实现这一点

在一些帖子中,用户提到使用
:host
::content
css属性,但到目前为止,我无法使用它们


我相信这是一个非常常见的场景,应该有一个很好的方法来实现它。

您可以在类似于家长的场景中使用
/deep/

:host /deep/ some-grand-child {
  color: blue;
}

要使选择器跨越组件边界,而不将
视图封装
设置为

哇-这很有效!谢谢我确实看到有人提到
/deep/
,但我从没想过它在CSS选择器中会起作用。显然,我需要更深入地研究shadow DOM。这是Angular2+独有的,并且仅适用于
视图封装。仿真的
。在ShadowDOM中,它们被添加到Chrome中,但不推荐使用(Angular重写了选择器)