1

我有一个动态 Polymer 2.0 应用程序,但它似乎不适用于@apply.

我有 CSS 变量和 mixins:

<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"失败。

我做错了什么,如何动态更改 mixins 的样式?

4

1 回答 1

2

Polymer 似乎仍在使用与 1.x 中相同的 polyfill 来处理变量和 mixin,这意味着动态样式更新应该仅限于变量,并且不适用于 mixins。

实现动态样式的一种方法是添加和删除类。

于 2017-05-31T05:44:07.960 回答