css - CSS 选择器中的/deep/and::shadow 是什么意思?

标签 css html polymer web-component shadow-dom

在查看 Polymer 时,我在 Chrome 37 开发人员工具的样式选项卡中看到以下 CSS 选择器:

enter image description here

我还见过一个带有伪选择器 ::shadow 的选择器。

那么,CSS 选择器中的 /deep/::shadow 是什么意思?

最佳答案


正如 Joel H. 在评论中指出的那样,Chrome 已经弃用了 /deep/组合器,它在 IE 中给出语法错误。


HTML5 Web Components 提供对 CSS 样式的完整封装。

这意味着:

  • 组件内定义的样式不能泄露并影响页面的其余部分
  • 在页面级别定义的样式不会修改组件自己的样式

然而,有时您希望使用页面级规则来操纵在影子 DOM 中定义的组件元素的呈现。为此,您添加 /deep/到 CSS 选择器。

因此在所示示例中,html /deep/ [self-end]正在选择 html 下的所有元素(顶级)元素具有 self-end属性,包括那些隐藏在网络组件的影子 DOM 根中的属性。

如果您要求一个选定的元素存在于影子根中,那么您可以使用 ::shadow其父元素上的伪选择器。

考虑:

<div>
  <span>Outer</span>
  #shadow-root
  <my-component>
    <span>Inner</span>
  </my-component>
</div>

选择器 html /deep/ span将同时选择 <span>元素。

选择器 ::shadow span将只选择内部 <span>元素。

在 W3C 的 CSS Scoping Module 中阅读更多相关信息规范。

关于css - CSS 选择器中的/deep/and::shadow 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25609678/

相关文章:

jquery - 基础导航从左向右滑动

html - 更改选定的多选元素的颜色

html - HTML5 <address> 元素的正确用法?

java - 如何解决 Web 组件测试错误?

javascript - Polymer-Project 对象未在 OS X 10.10 中呈现

html - 在css中为一个div添加多个样式

jquery - 消除滚动条并将嵌入式 pdf 放入我的 jquery 对话框中

html - 如何垂直居中一个字体很棒的图标?

html - 带有破折号下划线的命名类和 id 的 CSS 趋势?

javascript - 输入值绑定(bind)和观察器在 polymer 中不起作用