在查看聚合物时,我在 Chrome 37开发工具的 斯泰尔斯选项卡中看到以下 CSS 选择器:
我还看到了一个带有伪选择器 ::shadow的选择器。
::shadow
那么,在 CSS 选择器中 /deep/和 ::shadow是什么意思呢?
/deep/
正如 Joel H. 在评论中指出的那样,Chrome 已经废弃了 /deep/组合码,并且在 IE 中出现了语法错误。
HTML5 Web 组件提供了 CSS 样式的完整封装。
这意味着:
但是,有时候您希望使用页面级规则来操作在其影子 DOM 中定义的组件元素的表示。为此,需要将 /deep/添加到 CSS 选择器。
所以在示例中,html /deep/ [self-end]选择了 html(顶层)元素下所有具有 self-end属性的元素,包括那些隐藏在 web 组件的 Shadow DOM 根中的元素。
html /deep/ [self-end]
html
self-end
如果您选择了一个 要求元素作为影子根元素,那么您可以在它的父元素上使用 ::shadow伪选择器。
考虑一下:
<div> <span>Outer</span> #shadow-root <my-component> <span>Inner</span> </my-component> </div>
选择器 html /deep/ span将选择两个 <span>元素。
html /deep/ span
<span>
选择器 ::shadow span将只选择内部 <span>元素。
::shadow span
在 W3C 的 CSS 作用域模块规范中阅读更多关于这方面的内容。