我正在尝试使用Eric Bidelman的<fancy-tabs>
影子dom示例:https://developers.google.com/web/fundamentals/getting-started/primers/shadowdom
并且正在尝试向其添加Material Design样式,这需要在标签中添加:after伪元素。
经过一些实验,我发现应用伪元素的内部样式在使用Polymer时似乎有效,但在使用vanilla JS时却没有...
聚合物示例: https://jsbin.com/maqaze/edit?html,output
Vanilla JS例子:
在第二个例子中,应用:after伪元素在影子dom <style>
内不起作用,显然需要在外部设置。
https://jsbin.com/toxalu/edit?html,output
所以我的问题是,你应该如何将一个伪元素添加到slotted / light dom元素中,而不需要使用外部样式?
(在Chrome和Safari上试过这些例子)
答案 0 :(得分:1)
如果它似乎在Polymer中起作用,那是因为Polymer 1.0并不真正使用原生的::slotted
伪元素。
事实上,Polymer使用原生的Shadow DOM“v0”和converts ::slotted
to ::content
。你可以在开发工具中看到它。
如您所知,您可以从外部添加::after
个伪元素。
我认为伪元素被视为复杂选择器,因此在::slotted()
中不受支持。