bangdingcss.htmljavascript
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <title>Insert title here</title> </head> <body> <div id="vue-app-bangdingcss"> <h1>动态绑定样式的两种方式</h1> <h2>示例1 属性绑定</h2> <!--changeColor默认为false 经过click取反修改css--> <div v-bind:class='{changeColor:setColor}' v-on:click='setColor=!setColor'> <span>属性绑定</span> </div> <h2>示例2 计算属性绑定</h2> <!--经过修改属性值 进而触发方法来修改样式--> <button @click='setColor=!setColor'>点击改变颜色样式</button> <button v-on:click='setLength=!setLength'>点击改变长度样式</button> <div v-bind:class='computedClass'> <span>计算属性绑定</span> </div> </div> </body> <script src="bangdingcss.js"> </script> <!-- 样式--> <style> span { background: red; display: inline-block; padding: 10px; color: #fff; margin: 10px 0; } .changeColor span { background: green; } .changeLength span::after { content: 'MMMMMMM'; margin-left: 10ox; } </style> </html>
bangdingcss.jscss
new Vue({ el: '#vue-app-bangdingcss', data() { return { setColor: false, //默认false setLength: false } }, methods: { }, computed: { //经过方法来触发修改样式 注意用this引用属性 computedClass() { return { changeColor: this.setColor, changeLength: this.setLength }; } } });
页面效果html