上QQ阅读APP看书,第一时间看更新
5.2 绑定多个样式
我们可以为v-bind:class设置一个多元素的对象来绑定多个样式。通过改变对象中每个元素的键值,从而达到动态切换多个class的目的。基础用法如下:
v-bind:class="{样式名称1:变量1, 样式名称2:变量2, 样式名称n:变量n}"
我们下面做一个示例:
1)定义2个样式—lvse_qukuai和cuowu。
2)在data区域定义3个布尔型变量—isActive(值为true)、hasError(值为true)和noError(值为false)。
3)绑定样式,代码如下:
<div v-bind:class="{lvse_qukuai: isActive,cuowu:hasError}"></div> <div v-bind:class="{lvse_qukuai: isActive,cuowu:noError}"></div>
完整示例代码如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue.js样式-class属性绑定多个样式</title> <!--加载本地vue.js的框架--> <script src="vue2.2.2.min.js"></script> <style> /*自定义一个绿色区块的样式:宽、高为100px,绿色背景*/ .lvse_qukuai { width: 100px; /*宽度*/ height: 100px; /*高度*/ background-color: green;/*绿色背景*/ } .cuowu{ background-color: red;/*红色背景*/ } </style> </head> <body> <!--定义div代码块的id的值,这里定义的值为app,后面Vue会使用该值--> <div id="app"> <!--属性isActive的值(可以理解为变量)如果为true,则显示绿色的区块;否则隐藏--> <!--lvse_qukuai和cuowu是样式的名称--> <!--属性hasError的值(可以理解为变量)为true,覆盖绿色的背景,显示红色背景--> <div v-bind:class="{lvse_qukuai: isActive,cuowu:hasError}"></div> <hr> <!--属性noError的值(可以理解为变量)为false,不适用cuowu的样式,也就是不发生改变,还是 绿色背景--> <div v-bind:class="{lvse_qukuai: isActive,cuowu:noError}"></div> </div> <script> new Vue({ el: '#app', data: { isActive: true, hasError: true, noError: false } }) </script> </body> </html>
效果如图5-2所示。
图5-2 绑定多个样式
我们将isActive设置为true,显示样式lvse_qukuai对应的内容(绿色区块);将hasError设置为true,显示样式cuowu对应的内容(红色区块)。
提示 同绑定class属性一样,这里的样式名称也可以直接写lvse_qukuai,可以加上单引号,如'lvse_qukuai'。变量isActive不能添加单引号,如果添加了,就会被解析为true。