【发布时间】:2015-04-30 13:37:17
【问题描述】:
我正在构建一个包含大量自定义元素的 Polymer 单页界面。
现在我希望我的元素具有某种主样式,我可以在 index.html 或我的主要内容元素中定义它。可以这样想:
index.html
<style>
.classWhichWillBeUsedInCustomElements {
mainColor: #e0e0e0;
}
</style>
或
<script>
mainColor = "#e0e0e0";
</script>
my-cool-element.html
<polymer-element name="my-cool-element">
<template>
<paper-button style="color: {{mainColor}}"></paper-button>
</template>
</polymer-element>
或
<polymer-element name="my-cool-element">
<template>
<style>
.coolButton {
width: 300px;
color: {{mainColor}};
}
</style>
<paper-button class="coolButton"></paper-button>
</template>
</polymer-element>
除非这不起作用。
我试过了:
- 创建一个全局变量
window.defaultColor并像color: {{defaultColor}};一样使用它 - 在父元素中使用
core-style,运气不佳 - 在我的
index.html中创建一个 css 类并在自定义元素中调用它
实现这一目标的正确方法是什么?我试图避免使用Less
【问题讨论】:
-
我知道 Polymer 是一个奇怪的新库(哎呀,它仍处于 alpha 阶段),但我认为它不会改变你编写 CSS 的方式。例如,样式仍然需要有一个选择器(如
paper-button {})和其中的一个样式,如paper-button { color: #e0e0e0; }。或者,您可以将一个类应用于您的paper-button元素并将该类用作您的 CSS 选择器,而不是paper-button元素本身。 -
我把它写成一个小例子来展示我想要实现的目标。我知道这不是有效的 CSS。至于使用类,这是不可行的。因为我只想使用预定义的颜色,同时仍然能够为我的其他属性(例如宽度/高度)使用一个类
-
你可以给元素多个类;
<paper-button class="first second third">是有效的并且一直在发生。您还可以将内联样式与类结合起来。 -
我试过了,但是当我在
index.html中编写 css 类时,我无法在我的自定义元素中使用它。 -
这可能是因为您将 CSS 放在 index.html 文件中的
<style>标记中。为什么不使用实际的 CSS 文件,然后你可以将它导入到任何你想要的 HTML 文件中?