我想动态更新样式 inside
样式标签。
但是,为 Vue 创建容器模型会删除 style
标签。我知道样式标签应该放在页面的头部,但这只是为了方便使用。
所以我想要的是一个包含元素和样式标签的包装器:
<div class="setting">
<style>
.setting input {
background: {{bgColor}};
}
</style>
<input class="setting" type="text" v-model="bgColor">
</div>
输入的值应该更新 css 样式的值。每当完成简单的 div 元素时,这都有效,但样式标签似乎是个问题
javascript 设置如下:
new Vue({
el: '.setting',
data: {
bgColor: 'red'
}
});
但是,当样式标签具有特定 id 时,这可能会起作用,但我无法将其绑定到输入字段。
<style id="setting">
#blue {
background: {{bg}}
}
#blue:hover {
background: {{bgHover}}
}
</style>
<div id="blue"></div>
和 js:
new Vue({
el: '#setting',
data: {
bg: 'blue',
bgHover: 'red'
}
});
有人可以帮助我了解如何实现样式标签之间的更新值。 jsfiddle设置
谢谢。
原文由 ForDev 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是我认为很好的解决方法/解决方案。
它只是一个自定义组件,所以它尽可能地可重用。所有Vue的货如
v-if
都可以用。另一个优点是, 只要组件 存在,生成的样式就会存在!
我看到的一个缺点是,由于标签的名称是
<v-style>
(或您选择的任何名称)而不是<style>
,IDE 可能无法很好地为其着色。但否则它就像一个普通的<style>
标签。标准解决方案:使用
v-bind:style
这不会修改
style
标签,但设置样式的标准方法是使用 对象样式绑定。基本上,您将使用
:style
属性并以对象的形式为其分配样式的 CSS 属性。下面的演示。