为什么我的Polymer自定义CSS属性不起作用?
问题描述:
我正在迈出聚合物的第一步,而我被困在自定义的CSS属性中。为什么我的Polymer自定义CSS属性不起作用?
在my-item
元素,我检查了--my-item-color
变量,作为默认值分配red
:
<dom-module id="my-item">
<template>
<style>
:host {
display: inline-block;
padding: 5px;
}
.my-div {
background-color: var(--my-item-color, red);
display: block;
}
</style>
<div class="my-div">
<content></content>
</div>
</template>
<script>
Polymer({ is: "my-item" });
</script>
</dom-module>
这些项目是在下面的容器元素,但不知何故,所有my-item
S保持存储红色。
<dom-module id="my-container">
<template>
<style>
:host {
--my-item-color: blue;
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
</style>
<content></content>
</template>
<script>
Polymer({ is: "my-container" });
</script>
</dom-module>
plunkr:http://plnkr.co/edit/LovSp4VRAGpLadcr87Wz
谁能告诉我什么,我做错了什么?
答
您可以使用native CSS properties from Polymer 1.6.0来允许您的当前代码正常工作。确保通过设置您的Polymer
对象的useNativeCSSProperties
属性进口polymer.html
之前将其启用:
<script>
Polymer = {
lazyRegister: true,
useNativeCSSProperties: true
};
</script>
<link rel="import" href="../polymer/polymer.html">
<link rel="import" href="../x-element.html">
这能解决问题,仍然不知道为什么它不支持聚合物本身寿 – Sonaryr
不工作在影子dom上,只能在阴影中 –
@AdrianoSpadoni它也适用于Shadow DOM([demo](https://plnkr.co/edit/ffEfQhJfRvAorw7YKbbh?p=preview))。 – tony19