Polymer 无法将::after伪元素添加到阴影dom中的时隙元素
我在试验Eric Bidelman的Polymer 无法将::after伪元素添加到阴影dom中的时隙元素,polymer,web-component,shadow-dom,Polymer,Web Component,Shadow Dom,我在试验Eric Bidelman的阴影dom示例: 并试图向其添加材质设计样式,这需要在选项卡中添加:after伪元素 经过一些实验,我发现应用伪元素的内部样式在使用聚合物时确实有效,但在使用vanilla JS时却无效 聚合物示例: 示例: 在第二个示例中,应用:after伪元素在shadowdom中不起作用,显然需要在外部进行设置 所以我的问题是,您应该如何在不需要使用外部样式的情况下将伪元素添加到slotted/light dom元素中 (已经在Chrome和Safari上尝试过这些
阴影dom示例:
并试图向其添加材质设计样式,这需要在选项卡中添加:after伪元素
经过一些实验,我发现应用伪元素的内部样式在使用聚合物时确实有效,但在使用vanilla JS时却无效
聚合物示例:
示例:
在第二个示例中,应用:after伪元素在shadowdom
中不起作用,显然需要在外部进行设置
所以我的问题是,您应该如何在不需要使用外部样式的情况下将伪元素添加到slotted/light dom元素中
(已经在Chrome和Safari上尝试过这些例子)如果它似乎在聚合物中起作用,那是因为聚合物1.0实际上没有使用原生的
::开槽的伪元素
事实上,聚合物使用天然阴影DOM“v0”和。您可以在开发工具中看到它
正如您所注意到的,您可以从外部在
伪元素之后添加::
我假设伪元素被视为复杂选择器,因此在::slotted()
中不受支持 shadowdom的主要目的是将CSS样式从外部分离出来。按你的要求去做,实际上会适得其反。如果在shadow DOM内部有light DOM元素,则应在shadow DOM外部设置它们的样式。该规范允许您修改“分布式”节点的样式(即,用户贡献的light DOM插入元素的阴影树中)我要问的问题是,它是否还允许您修改CSS伪元素属性:after和:before。也许这被认为是“向灯光dom添加框”,因此是不允许的。我被它在上面给出的聚合物示例中确实起作用的事实所震惊,但这可能是实现本身的一个问题?谢谢。我确实注意到了::content
和::slotted
转换,我想知道发生了什么!Slotted实际上可以与伪元素一起使用,例如:
之后(例如::Slotted(输入)::after
),