聚合物元素的CSS主题

时间:2014-11-11 04:23:36

标签: web themes components element polymer

最近我使用来自https://www.polymer-project.org/的指令创建了一些Polymer元素。我希望我的元素有几个颜色主题,如http://www.google.com/design/spec/style/color.html#color-color-palette

  1. 如果我使用元素的内部CSS并将其绑定到元素的主题公共属性,那么它只能在Chrome中使用,而不能在Firefox或IE中使用。例如:
  2. 
    
    <style>
    :host .toolbar
    {
      background-color: {{theme.shade500}};
      color: {{theme.shade500TextColor}};
    }
    </style>
    &#13;
    &#13;
    &#13;

    有没有办法在Chrome以外的浏览器中使用,或者我在某处犯错?

    1. 如果我使用一个核心风格的生成器(在元素模板之外)并将其属性绑定到元素的主题属性,那么它将适用于浏览器,但更改元素的一个实例的主题将更改核心样式的生成器,因此元素的所有其他实例也会更改。 我可以手动创建几个核心样式的生成器,但是很多CSS规则会有代码重复(它们之间的唯一区别是调色板)。 是否有一种优雅的方式来处理这些问题?

    2. 为Polymer元素创建和使用主题的最佳方式是什么?

    3. 提前感谢您的回答!

2 个答案:

答案 0 :(得分:1)

我推荐用于创建主题的方法是制作使用::shadow/deep/ CSS选择器的主题样式表。

答案 1 :(得分:0)

<style>内的Firefox绑定非常不稳定。你可以在线使用它。在这里运行正常,如果您在IE或其他浏览器上有问题清理代码使用_ _style="{{theme.themeName}}",他们会忽略它,聚合物会把它拿起来。

这是我在FF工作的唯一方法。我计划用核心风格进行测试,但我的希望是如此之低,我甚至对它懒惰。对不起,我没有关于_的文档的链接,但因为文档仍然不是很有组织,而且很难找到特定的东西。