在我的index.html中,我正在导入我的Polymer自定义元素并链接引导样式表 . 如果我检查我的自定义元素及其本地DOM,我看到引导样式正在流淌到它上面 . 是因为Polymer(shady DOM)的阴影DOM polyfill不支持封装?
我已经尝试将Polymer全局DOM设置设置为 "shadow"
,但是使用Safari并没有't help (maybe because I' m它还没有支持shadow DOM,但我已经链接了完整的WebComponents库,所以它应该填充那个) .
在搜索SO时,我发现了这个问题:External CSS affecting ("bleeding" into) shadow DOM with Polymer,但它与Polymer的0.5版本有关,所以我现在不知道它对我有多重要 .
3 回答
想象一下Shady DOM实现类似于jQuery插件 . 当插件向您添加新元素时,DOM不会以任何方式封装 .
你可以强制Polymer使用shadow DOM,但要注意它不是完全支持的,并且polyfill webcomponents.js正在进行繁重的工作以使其工作,所以性能不是最佳的 .
这是Shadow DOM polyfill的known limitation .
Polymer 1.0中默认情况下不启用Shadow DOM . 这是因为并非所有浏览器目前都支持shadow DOM,并且难以拼接,因此他们不希望人们在不同的浏览器中体验不同的外观 . 但是你可以打开它 . 有关如何执行此操作,请参阅here . 有关此here和here的更多信息