gpt4 book ai didi

css - 在元素 Shadow Root 样式中应用 Polymer 属性

转载 作者:行者123 更新时间:2023-11-28 01:05:46 25 4
gpt4 key购买 nike

所以动态设置样式很容易,我的问题是基于媒体查询中的动态样式,所以在 max-width: 1000px 之间,我希望样式是基于属性或一些计算的 JS,如总组件数量的轮播宽度。

无论如何,这里有一个代码片段,它不起作用,但显示了我对如何应用这些属性的想法:-P

    <link rel="import" href="../../bower_components/polymer/polymer-element.html">

<dom-module id="hello-eggs">
<template>
<style>
:host {
display: block;
background: [[prop2]];
}

@media screen and (max-width: 1000px) {
background: [[prop2]]
}
</style>
<span>[[prop1]] are here</span>
</template>

<script>
/**
* @customElement
* @polymer
*/
class HelloEggs extends Polymer.Element {
static get is() { return 'hello-eggs'; }
static get properties() {
return {
prop1: {
type: String,
value: 'Hello Eggs'
},
prop2: {
type: String,
value: '#fc0'
}
};
}
}

window.customElements.define(HelloEggs.is, HelloEggs);
</script>
</dom-module>

提前致谢

最佳答案

没关系,我想出了一个让我开心的方法,希望能帮助像我这样的人:-D

基本上我得到了样式表并为新的媒体查询插入了一个规则,它让我可以设置我想要的内容。我也将宽度更改为 500px

    <link rel="import" href="../../bower_components/polymer/polymer-element.html">

<dom-module id="hello-eggs">
<template>
<style>
:host {
display: block;
background: #eee;
margin-bottom: 10px;
}
</style>
<span>[[prop1]] are here</span>
</template>

<script>
/**
* @customElement
* @polymer
*/
class HelloEggs extends Polymer.Element {
static get is() { return 'hello-eggs'; }
static get properties() {
return {
prop1: {
type: String,
value: 'Hello Eggs'
},
prop2: {
type: String,
value: '#fc0'
}
};
}

connectedCallback() {
super.connectedCallback();

let sheet = this.shadowRoot.styleSheets[0];
sheet.insertRule(`@media screen and (max-width: 500px) { span { background: ${this.prop2}; } }`, 1);
}
}

window.customElements.define(HelloEggs.is, HelloEggs);
</script>
</dom-module>

我仍然认为能够在极端情况下将属性放在样式区域中会很棒,但是如果我将所有样式都应用了 insertRule ,这对宽度和高度等非常有用,这仍然给了我这个。

关于css - 在元素 Shadow Root 样式中应用 Polymer 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52373937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com