Angular 2 中 /deep/ 和 >>> 的使用

新手上路,请多包涵

我一直在阅读这个选择器,并得到相互矛盾的答案。

在: /deep/ 和 ::shadow 在 CSS 选择器中是什么意思?

我们看:

正如 Joel H. 在评论中指出的那样,Chrome 已经弃用了 /deep/ 组合器,并且它在 IE 中给出了语法错误。

在: https ://github.com/Microsoft/vscode/issues/7002

我们看:

/deep/ 不再存在,所以我认为我们不应该支持它。 >>> 是新版本,应该会支持

但是,在 Angular 2 文档中: https ://angular.io/docs/ts/latest/guide/component-styles.html

我们看:

/deep/ 选择器也有别名 >>>。我们可以互换使用两者中的任何一个。

显然,相信 Angular 2 文档是明智的,但由于所有这些相互矛盾的信息,我有点犹豫。

事实上,在最新版本的 Microsoft Visual Studio Code 中, /deep/>>> 产生错误,尽管尽管有错误,它们都可以工作。

我的问题是双重的:

  1. /deep/ 会留下来吗?我们是否有任何来源、引用或任何规范中的任何内容表明它将被采用?或者如果它已被正式弃用?

  2. 我们可以在不完全禁用语法检查的情况下抑制 Visual Studio Code 中的这个错误吗?

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

阅读 589
1 个回答
  1. > /deep/ 会留下来吗?我们是否有任何来源、引用或任何规范中的任何内容表明它将被采用?或者如果它已被正式弃用?

/deep/ 语法已过时,最后一次出现 在 2014 年 的 css-scoping 中,它的替代品 >>> 大约半年前在 Chrome 45 中被弃用。

贯穿阴影的后代组合器的整个概念 将完全从 Shadow DOM 中移除。实现可以完全删除它,也可以将其别名为常规的后代组合器(这取决于将来如何实现 Shadow DOM 可能有意义,也可能没有意义)。

  1. > 我们可以在不完全禁用语法检查的情况下抑制 Visual Studio Code 中的这个错误吗?

不幸的是没有。

出于兼容性目的,Angular 允许在模拟视图封装中使用这两种方法,但强烈建议作者继续使用 >>> ,因为 /deep/ 现在在技术上无效,因此在本机视图封装中不受支持。

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

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