用什么代替 ::ng-deep

新手上路,请多包涵

我正在尝试对路由器插座放置的元素进行样式化,并希望确保生成的元素的宽度为 100%

从大多数回复中,我看到我应该使用 ::ng-deep 选择器,但从 Angular 的 文档 来看,它已被弃用。是否有 ::ng-deep 的替代品?

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

阅读 1.3k
2 个回答

FWIW 在我的研究中,我没有找到任何替代 ng-deep 或其他适用替代品的方法。这是因为,我相信 Angular 团队正在遵从 W3C 关于 shadow dom 的规范,该规范最初有诸如 deep 类的选择器。然而,W3c 此后删除了该建议,但没有用新的建议取而代之。在此之前,我想 Angular 团队将保留 ::ng-deep 并且它是可用的替代品,但由于 W3C 草案的未决状态而处于弃用状态。我现在无法花时间找到文档来支持它,但我最近确实看到了它。

长话短说:继续使用 ::ng-deep 及其替代品,直到创建替代品 - 弃用只是一个早期通知,这样人们就不会在实际变化发生时措手不及。

更新

https: //drafts.csswg.org/css-scoping-1/ 如果您有兴趣,这里是提案草案。看起来他们正在为 shadow dom 树中的元素开发一组健壮的选择器;正是这个规范,一旦获得批准,我认为它会通知角度克隆,如果有的话(即,一旦它在浏览器中生效,角度可能不需要实现自己的选择器)。

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

如果您想为站点中多个地方使用的某些第 3 方组件设置样式,但您需要在一个地方使用特定的 CSS 外观,而不会在访问此页面后影响其他出现 - 您可以使用 [ngStyle] 。我知道它并不适合所有情况,但在我的情况下,这是一种方法(我需要 ViewEncapsulation.None ,所以我不能在单独的 CSS 文件中隔离样式)。

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

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