在 Chrome 34 中,标题中定义的样式带有 <style>
标签将影响 Polymer 元素的 Shadow DOM 中的元素。在 Chrome 36 中,情况并非如此。
我可以将我们所有的样式直接移动到元素的模板中,但有时我们的 css 选择器会弥合 Shadow DOM 的差距。例如:
.something-outside .something-inside { ... }
.something-outside.foo .something-inside { ... }
后一种情况比较困难,因为它需要有关两个范围的信息。
处理这个问题的正确方法是什么? Polymer 是否有一项功能可以让全局样式通过?
好笑的是,如果没有 10 个 stackoverflow 信誉点(whee),我不能添加任何图像或超过 2 个链接,所以我能提供的最好的是这个 jsbin:
最佳答案
您看到的是 polyfill 和原生 Shadow DOM 之间的区别。之前应用的选择器不再以 SD 中的元素为目标。
要为 SD 外部的元素设置样式,可以使用 /deep/
组合器和 ::shadow
伪元素。例如,要将所有 h1
设置为红色,无论它们出现在什么树中:
body /deep / h1 {
color: red;
}
这两篇文章包含了 SD 样式的所有细节:
关于javascript - 全局样式不适用于 Chrome 36 中 Polymer 元素中的 Shadow DOM 子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23231149/