相关疑难解决方法(0)

为什么:host选择器仅在带有platform.js的chrome中工作?

有很多关于如何设置Web组件样式的讨论.

例如,http: //www.html5rocks.com/en/tutorials/webcomponents/shadowdom-201/建议您可以使用:host标记来定位组件标记本身,而注入的样式表(例如h1)应该封装组件阴影dom内的h1.

这很棒,适用于chrome.

...但它只适用于铬.

在firefox中访问上面的url并没有显示任何花哨的演示; 事实上,他们完全没有工作.

所以.

https://github.com/polymer/platform理论上是一个polyfill,它允许您使用不具备所需功能的本机支持的浏览器的Web组件.

从理论上讲,这包括对CSS规则的一些有限支持,请参阅:http://www.polymer-project.org/platform/shadow-dom.html

但是,实际上它不起作用.完全没有.

这里发生了什么?当您无法设置组件样式时,我们如何认真地声称platform.js polyfill正在运行并支持旧版浏览器?

我见过的最好的解决方案是要求组件模板具有已知的根类节点:

<template>
  <style>
    .foo .bar {
       ...
    }     
  </style>
  <div class='foo'>
     ...
     <div class='bar'>Hi</div>
  </div>
</template>
<style>  
  .foo .bar { 
    ...
  }
</style> 
Run Code Online (Sandbox Code Playgroud)

请注意,样式表在模板文档根上下文中都是重复的; 否则firefox,safari和IE样式不起作用.

这真的是我们在Web组件样式方面的水平吗?

我错过了什么吗?

这真的好像这是很多很多进一步被使用比人所提出的建议,即使使用最新的浏览器的每个版本的路程.

这是我用http://codepen.io/shadowmint/pen/iyFxE使用platform.js 0.3.4 的笔,并展示了它如何只在chrome中工作.

web-component

5
推荐指数
1
解决办法
3501
查看次数

标签 统计

web-component ×1