我应该说,我真的没有,我正在努力工作,通过一个问题开始。我对Shadow Dom和CSS3 :target
选择器可能/应该/当前如何一起工作感兴趣。阴影大教堂和CSS3:目标选择
我知道HTML规范说,应该永远只能是一个有效的HTML文档中的特定ID值的一个要素。但是当我们开始使用带有阴影dom的webcomponents时,我们可以很容易地使用具有相同ID的多个元素来发现自己。当我们在同一页面中多次使用相同的组件时,情况尤其如此。所以,问题是我是这样的:应该发生到具有相匹配的当前哈希和其风格与:target
规则的ID值阴影DOM区域内的要素是什么?
例如,如果我写了一个WebComponent的包含
<style>
#debug {display:none}
#debug:target { display:block; background-color:yellow; border 2px solid red; }
</style>
<div id="debug">some debug data</div>
应该发生在我的元素的所有实例,我把一个页面上,并导航到#调试什么(我的元素)?每个组件中的调试元素应该显示?他们都不应该显示?应该只显示第一个元素的调试div(我期望浏览器尝试导航到的那一个)?
我的意见是,如果页面没有与任何滚动导航应该出现在页面上的ID=debug
值的元素。由于影子dom与页面的其余部分是独立的,因此浏览器不应该尝试导航到嵌套在shadow dom中的这样一个元素。每个my-element实例都应该能够看到当前页面的URL,并且应该应用任何匹配:目标规则,以便每个my-elements的调试div都应该可见。
如果这是它将使用于所有组件的共享页面的状态,如上面的调试的实例一些有趣的可能性的情况下。不过,我怀疑Chrome是如何实现这些目标的。而且我很确定这个Shadow Dom填充不会正确地处理事情,因为它基本上将所有东西都塞进了页面的Dom树中,并且会破坏html规范。
如果任何人有这个应该怎么工作的一个答案,它目前的工作方式......
(从我的电脑编辑,以添加格式...很难从我的手机做)