2016-03-02 67 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