医生说:
阴影穿透后代组合器已被弃用,并且主要浏览器和工具正在删除支持。因此,我们计划放弃对 Angular 的支持(对于 /deep/、>>> 和 ::ng-deep 的所有 3 个)。在那之前,应该首选 ::ng-deep,以获得与工具更广泛的兼容性。
由于我想升级到新版本而不更改代码,因此已弃用的方法有哪些替代方法?
经过一番搜寻之后实际笔记 https://lists.w3.org/Archives/Public/public-webapps/2015AprJun/att-0307/24-minutes.html来自委员会会议 https://www.w3.org/wiki/Webapps/WebComponentsApril2015Meeting在这个问题上,看起来还没有提出替代方案。使用::ng-deep
语法确保您让 Angular 负责打破它们为您的样式所做的样式封装(对于模板中子组件中的 DOM 节点)(并且不使用浏览器本机功能,这显然使其更加面向未来)。我认为该注释只是为了让您知道,每当实际的浏览器机制到位时,他们都会计划实现它。我个人不会回避使用它。
在 CSS 中不使用该运算符的唯一方法是完全选择不让 Angular 管理组件的样式封装,方法如下:
import { ViewEncapsulation } from '@angular/core';
@Component({
...
encapsulation: ViewEncapsulation.None
})
如果这样做,您的样式就会变成全局样式,因此请确保在每个样式规则前面加上您的组件,以确保它们不会泄漏到超出范围之外。例如,如果您有一个MyCustomComponent
具有选择器的组件my-custom-component
:
my-custom-component button { ... } /* good */
button { ... } /* bad */
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)