【发布时间】:2018-01-23 16:59:33
【问题描述】:
我有一个自定义的 Polymer 2 视频播放器元素,我希望能够将一个属性传递给每个元素实例,以便定义应用哪个样式表(每年发布不同的主题名称和每组样式)当前存在于服务器上的它们自己的文件中,该文件具有可预测的命名格式)。我看到了一些带有内联标签的示例,但这似乎只是较小样式的可接受解决方案(否则我无法控制将所有样式都塞在那里,有很多)。如何正确进行主题化?
这是我目前在两个单独的 HTML 文件中得到的:
演示文件 (demo-page.html)
<link rel="import" href="../my-video-player.html">
<my-video-player data="{...}" theme="2016"></my-video-player>
<my-video-player data="{...}" theme="2017"></my-video-player>
组件文件 (my-video-player.html)
<dom-module id="my-video-player">
<template>
<link type="css" rel="import" href="css/[[theme]]/styles.css">
</template>
<script>
class MyVideoPlayer extends Polymer.Element {
...
}
</script>
</dom-module>
注意:我也尝试将上面的链接标签放在模板标签之外的一级,但这不起作用。
现在发生的只是两个主题样式表中的一个被应用到我的两个组件中。我需要的是让第一个组件应用 2016.css 样式表,而第二个组件获取 2017.css 样式表。
【问题讨论】:
-
我不认为你可以限定 CSS(在当前浏览器中)。您可以在样式表中添加
[theme=2016]吗?
标签: javascript polymer shadow-dom polymer-2.x