我添加了default
组合器,用于引用组件中的内容投影元素。但是,当我从默认(::ng-deep
)切换到ViewEncapsulation.Emulated
模式时,显然ViewEncapsulation.ShadowDom
不是本机的Shadow DOM选择器,旧的CSS无法正常工作。
::ng-deep
令人惊讶的是,当我使用/* This works in ViewEncapsulation.Emulated */
:host ::ng-deep .course-description {
max-width: 360px;
margin: 0 auto;
margin-top: 15px;
user-select: none;
}
组合器(在Chrome v63 https://developers.google.com/web/updates/2017/10/remove-shadow-piercing中已删除)在Chrome v75.0.3770.100中的/deep/
正常工作时
ViewEncapsulation.ShadowDom
能否在组件CSS内使用/* This works in ViewEncapsulation.ShadowDom */
:host /deep/ .course-description {
max-width: 360px;
margin: 0 auto;
margin-top: 15px;
user-select: none;
}
使其像以前一样工作,但以::slotted()
模式工作?如果是,怎么办?
答案 0 :(得分:1)
您不走运。 .emulated不支持:: slotted。但是它得到了支持。原生
ng-deep也已弃用,并且afaik,尚无计划的替代品。
不推荐使用穿刺后代组合器,并且支持 从主要的浏览器和工具中删除。因此,我们计划放弃 支持Angular(适用于/ deep /,>>>和:: ng-deep的全部3种)。
我仍然不确定,他们是在研究解决方案还是只是想让我们忘记它。