2016-03-02 72 views
16

两个暗影穿刺组合器已被废弃,如https://www.chromestatus.com/features/6750456638341120
中所述,那么实现相同目的的局限性是什么,或者这种暗影穿透功能已被完全放弃?什么是:: shadow和/ deep /的替代品?

+0

对于一些更换':: shadow'和'的作品现在deep',使用'style'元素你的影子根里面,有像'@import url('/common-style.css')'。请参阅http://stackoverflow.com/questions/34699350/shadow-piercing-descendant-combinator-deep-including-shadow-pseudo-el/34706299#34706299和http://stackoverflow.com/questions/30829019/polymer-share -styles-across-elements/32941101#32941101更长期的解决方案是[CSS自定义属性(又名“CSS变量”)](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables )。 – sideshowbarker

回答

12

问题是,::shadow/deep/中断封装。我很高兴他们走了。

的良好替代品:

+0

对于在渲染之前无法访问阴影dom的情况,无法避免使用':: shadow' – RenaissanceProgrammer

+0

@MarcG如果没有破解封装的机制,我该如何重写框架样式? – adamdport

1

由于聚合物2:

  • ::shadow(阴影刺穿选择) - 没有直接的替代品。相反,必须使用自定义的CSS属性。 Polymer 2: Custom CSS Properties

  • /deep/ - 有某种定义:host > * { ... }更换(适用规则集中的所有顶级儿童在主机的影子树的不与主文档中的规则冲突)。

欲了解更多详细信息来检查Polymer 2 Upgrade Notes