本页目录
知识点:
方法:
第一步:html 部分 标签绑定动态 style
<div :style="{ '--setColor': setColor, '--setBackground': setBackground }"></div>第二步: script 部分 data 设置变量
data(){ return{ setColor: "#fff", setBackground: "#eee" }}第三步: style 部分 通过 var 函数方法引用 data 变量
div{ color: var(--setColor), background: var(--setBackground)}代码来源:匹诺曹 Er,文章:https://www.jianshu.com/p/1ecc3b1ce375
原理刨析
:style="{'--setColor': setColor,}等同于style="--setColor: #fff;"等同于.div {--setColor: #fff;}/*定义变量*/示例代码
<script src="https://unpkg.com/vue@next"></script> <!-- import CSS --> <link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css"> <!-- import JavaScript --> <script src="https://unpkg.com/element-plus"></script> <div id="app"> <template v-if="msg"> <p>简单的颜色选择器</p> <h3>您选中的颜色是:{{stylecolor}}</h3> <div class="div-font" :style="{ '--fontColor': stylecolor, '--bgColor': stylecolor, }"> 我是一行简单的文本,请点击下方按钮调整我的颜色 <span class="div-bg">更改我的背景色</span> </div>
<el-color-picker v-model="stylecolor" size="large" show-alpha />
</template>
</div>
<script> const App = { data() { return { msg: true, stylecolor: "red", }; }, }; const app = Vue.createApp(App); app.use(ElementPlus); app.mount("#app");
</script>
<style lang="scss"> .div-font { /*读取变量*/ color: var(--fontColor); }
.div-bg { background-color: var(--bgColor); } </style>效果
原网页中的可执行演示已停用,以下完整保留为静态 HTML 代码。
<script src="https://unpkg.com/vue@next"></script> <!-- import CSS --> <link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css"> <!-- import JavaScript --> <script src="https://unpkg.com/element-plus"></script> <div id="app"> <template v-if="msg"> <p>简单的颜色选择器</p> <h3>您选中的颜色是:{{stylecolor}}</h3> <div class="div-font" :style="{ '--fontColor': stylecolor, '--bgColor': stylecolor, }"> 我是一行简单的文本,请点击下方按钮调整我的颜色 <span class="div-bg">更改我的背景色</span> </div> <el-color-picker v-model="stylecolor" size="large" show-alpha /> </template> </div> <script> const App = { data() { return { msg: true, stylecolor: "red", }; }, }; const app = Vue.createApp(App); app.use(ElementPlus); app.mount("#app"); </script> <style lang="scss"> .div-font { /*读取变量*/ color: var(--fontColor); } .div-bg { background-color: var(--bgColor); } </style>