2017-05-24 25 views
1

我有一个动态的Polymer 2.0应用程序,但它似乎不适用于@apply在@apply中使用Polymer.updateStyles mixin

我有CSS变量,混入:

<custom-style> 
    <style> 
     html { 
      --content-background-colour: #fff; 
      --content-foreground-colour: var(--paper-grey-700); 

      --content-mixin: { 
       background-color: var(--content-background-colour); 
       color: var(--content-foreground-colour); 
      } 
     } 

     .content-one { 
      background-color: var(--content-background-colour); 
      color: var(--content-foreground-colour); 
     } 

     .content-two { 
      @apply --content-mixin 
     } 
    </style> 
</custom-style> 

然后,我有主题,用户可以选择并应用:

const theme = { 
    "--content-background-colour": "var(--paper-grey-800)", 
    "--content-foreground-colour": "var(--paper-grey-100)" 
}; 

Polymer.updateStyles(theme); 

的问题是,只有直接变量更新,那些设定@apply别。 class="content-one"作品,class="content-two"类失败。

我在做什么错,我该如何动态改变mixin的风格?

回答

2

聚合物似乎仍然在使用1.x中的变量和混合使用相同的polyfill,这意味着动态样式更新应该仅限于变量,不应该用于mixin。

您可以通过添加和删除类来实现动态样式。