使用 v-bind 指令去绑定行内样式,即使用 v-bind:style 或者 :style 的方式去动态绑定行内样式。
下面实例中我们将直接在 v-bind:style 属性中定义样式,实例如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>学习 VUE 框架</title> <script type="text/javascript" src="../libs/vue-2.6/vue.js"></script> <style type="text/css"> .normal {font-size: 18px; font-weight:bold;} .active {color: #26b955;} .under-line {border-bottom: solid 3px red;} </style> </head> <body> <div id="app"> <p v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }">内联样式</p> </div> <script type="text/javascript"> var vm = new Vue({ el: '#app', data: { activeColor: 'red', fontSize: 16 } }); </script> </body> </html>
上例中,v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }" 语句其实定义了一个对象,该对象中定义了元素的字体颜色和字体大小。而字体颜色和大小的值从 vue 对象的 data 中动态获取。
下面实例将演示在 v-bind:style 中引用在 vue 对象 data 中定义的 styleObject 对象。代码如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>学习 VUE 框架</title> <script type="text/javascript" src="../libs/vue-2.6/vue.js"></script> <style type="text/css"> .normal {font-size: 18px; font-weight:bold;} .active {color: #26b955;} .under-line {border-bottom: solid 3px red;} </style> </head> <body> <div id="app"> <p v-bind:style="styleObject">直接绑定到一个样式对象通常更好</p> </div> <script type="text/javascript"> var vm = new Vue({ el: '#app', data: { styleObject: { color: 'blue', fontSize: '12px' } } }); </script> </body> </html>
下面实例演示在 v-bind:style 中使用数组的形式引用多个对象,代码如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>学习 VUE 框架</title> <script type="text/javascript" src="../libs/vue-2.6/vue.js"></script> <style type="text/css"> .normal {font-size: 18px; font-weight:bold;} .active {color: #26b955;} .under-line {border-bottom: solid 3px red;} </style> </head> <body> <div id="app"> <p v-bind:style="[styleObject2, styleObject]">数组语法可以将多个样式对象应用到同一个元素上</p> </div> <script type="text/javascript"> var vm = new Vue({ el: '#app', data: { styleObject: { color: 'blue', fontSize: '12px' }, styleObject2: { fontWeight: 'bold', border: 'solid 1px red' } } }); </script> </body> </html>