2016-03-02 39 views
16

I due combinatori di piercing ombreggiato sono stati dichiarati obsoleti come indicato in https://www.chromestatus.com/features/6750456638341120
Quindi qual è il sostituto per il raggiungimento della stessa cosa o questa funzione di piercing all'ombra è stata completamente abbandonata?Qual è il sostituto di :: shadow e/deep /?

+0

Per qualcosa di sostituire ':: shadow' e' deep' che ora funziona, utilizzare un elemento 'style' dentro la tua radice ombra, con qualcosa come' @import url ('/common-style.css') '. Vedi http://stackoverflow.com/questions/34699350/shadow-piercing-descendant-combinator-deep-including-shadow-pseudo-el/34706299#34706299 e http://stackoverflow.com/questions/30829019/polymer-share -styles-across-elements/32941101 # 32941101 La soluzione a lungo termine è [Proprietà personalizzate CSS (dette anche "variabili CSS")] (https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables). – sideshowbarker

risposta

12

Il problema è che ::shadow e /deep/ incapsulamento di interruzione. Sono contento che se ne siano andati.

I buoni sostituti sono:

+0

Per i casi in cui non è possibile accedere a shadow dom prima del rendering, è impossibile evitare ':: shadow' – RenaissanceProgrammer

+0

@MarcG Se non c'è alcun meccanismo per interrompere l'incapsulamento, come posso sovrascrivere lo stile di struttura? – adamdport

1

Come Polymer 2:

  • ::shadow (selettori ombra perforanti) - v'è alcun sostituto diretto. Invece è necessario utilizzare una proprietà CSS personalizzata. Polymer 2: Custom CSS Properties

  • /deep/ - v'è una sorta di sostituzione definendo :host > * { ... } (si applica un set di regole a tutti i top-level bambini in ombra dell'albero del padrone di casa, che non è in conflitto con la regola nel documento principale).

Per informazioni più dettagliate controllare Polymer 2 Upgrade Notes