class与style绑定
1.绑定class
<!DOCTYPE html> <html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title>学习example</title> <script src="../static/vue.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="app"> <!-- 操作元素的class列表和内联样式是数据绑定的一个常见需求。 因为它们都是attribute,所以可以用v-bind处理它们:只需要通过表达式计算出字符串结果即可。 不过,字符串拼接麻烦且易错。因此,在将v-bind用于class和style时,Vue.js做了专门的增强。 表达式结果的类型除了字符串之外,还可以是对象或数组。--> <!-- 可以传给 v-bind:class 一个对象,以动态地切换 class--> <!-- active 这个 class 存在与否将取决于数据 property isActive 的值--> <!-- 可以在对象中传入更多字段来动态切换多个 class。此外,v-bind:class 指令也可以与普通的 class attribute 共存。--> <div class="test" v-bind:class="{active:isActive,green:isGreen}" style="width:200px;height:200px;text-align:center;line-height:200px;"> hi vue </div> </div> <script type="text/javascript"> var vm = new Vue({ el: "#app", data: { isActive: true, isGreen: true, }, }); </script> <style type="text/css"> .test { font-size: 30px; } .green { color: #00FF00; } .active { background: #FF0000; } </style> </body> </html>
2.数组语法
<!DOCTYPE html> <html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title>学习example</title> <script src="../static/vue.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="app"> <!-- 把一个数组传给 v-bind:class,以应用一个 class 列表--> <div class="test" v-bind:class="['active','green']" style="width:200px;height:200px;text-align:center;line-height:200px;"> hi vue </div> </div> <script type="text/javascript"> var vm = new Vue({ el: "#app", data: {}, }); </script> <style type="text/css"> .test { font-size: 30px; } .green { color: #00FF00; } .active { background: #FF0000; } </style> </body> </html>
3.三目运算符
<!DOCTYPE html> <html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title>学习example</title> <script src="../static/vue.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="app"> <div class="test" v-bind:class="[isActive?'active':'',isGreen?'green':'']" style="width:200px;height:200px;text-align:center;line-height:200px;"> hi vue </div> </div> <script type="text/javascript"> var vm = new Vue({ el: "#app", data: { isActive: true, isGreen: false, }, }); </script> <style type="text/css"> .test { font-size: 30px; } .green { color: #00FF00; } .active { background: #FF0000; } </style> </body> </html>
4.绑定内联样式
<!DOCTYPE html> <html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title>学习example</title> <script src="../static/vue.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="app"> <div :style="{color:color,fontSize:size,background:isRed?'#FF0000':''}"> hi vue </div> </div> <script type="text/javascript"> var vm = new Vue({ el: "#app", data: { color: "#FFFFFF", size: '50px', isRed: true, }, }); </script> </body> </html>