2016-03-02 2 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-through-elements/32941101 # 32941101 Долгосрочным решением является [CSS Custom Properties (также называемые «переменными CSS»)] (https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables). – sideshowbarker

ответ

12

Проблема в том, что ::shadow и /deep/ разрыв инкапсуляции. Я рад, что они ушли.

Хорошие заменители:

+0

Для случаев, когда вы не можете получить доступ к теневому дому до его рендеринга, невозможно избежать «:: shadow» – RenaissanceProgrammer

+0

@MarcG Если нет механизма для разрыва инкапсуляции, как я могу переопределить стиль фреймворка? – adamdport

1

Как полимер 2:

  • ::shadow (теневую пирсингу селекторы) - нет прямой замены. Вместо этого должны использоваться пользовательские свойства CSS. Polymer 2: Custom CSS Properties

  • /deep/ - есть какая-то замена путем определения :host > * { ... } (применяет набор правил всех детей верхнего уровня в тени дерева хозяина, который не конфликтует с правилом в основном документе).

Для получения более подробной информации посетите Polymer 2 Upgrade Notes

Смежные вопросы