如https://www.chromestatus.com/features/6750456638341120所述,这两个穿孔阴影的组合器已被弃用 那么实现相同的东西是什么,或者这个影子穿透功能已被完全放弃了?
::shadow
和/deep/
被拆除以打破封装。
替代品是:
:host-context
。在这里阅读:http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom-201/从聚合物2开始:
::shadow
(阴影刺穿选择器) - 没有直接的替代品。相反,必须使用自定义CSS属性。 Polymer 2: Custom CSS Properties/deep/
- 通过定义:host > * { ... }
进行某种替换(将规则集应用于主机影子树中的所有顶级子节点,这与主文档中的规则不冲突)。有关更多详细信息,请查看Polymer 2 Upgrade Notes
在撰写本文时,您可以尝试使用Chrome 73及以上版本的::part
和::theme
:
https://www.chromestatus.com/feature/5763933658939392
<submit-form>
#shadow-root
<x-form exportparts="some-input, some-box">
#shadow-root
<x-bar exportparts="some-input, some-box">
#shadow-root
<x-foo part="some-input, some-box"></x-foo>
</x-bar>
</x-form>
</submit-form>
<x-form></x-form>
<x-bar></x-bar>
您可以使用以下方式设置所有输入
:root::part(some-input) { ... }
有完整的文档如何工作:
https://github.com/fergald/docs/blob/master/explainers/css-shadow-parts-1.md
这在某种程度上可以解决你的问题,但我仍然想念我用::shadow
设计嵌入式推文的日子。
“:: v-deep”对我有用。例如:
.menu {
// stuff
}
/deep/.sub-menu { // override submenu
.sub-menu__mini {
//stuff
}
a, a:hover {
//stuff
}
}
}
变为:
.menu {
// stuff
}
::v-deep .sub-menu { // override submenu
.sub-menu__mini {
//stuff
}
a, a:hover {
//stuff
}
}
}