<div v-bind:class="{ active: isActive }">div>
与普通 class 并存:
<div class="static"
v-bind:class="{ active: isActive, 'text-danger': hasError }">
div>
也可以直接绑定数据里的一个对象
<div v-bind:class="classObject">div>
data: {
classObject: {
active: true,
'text-danger': false
}
}
还可以绑定返回对象的计算属性
<div v-bind:class="classObject">div>
data: {
isActive: true,
error: null
},
computed: {
classObject: function () {
return {
active: this.isActive && !this.error,
'text-danger': this.error && this.error.type === 'fatal',
}
}
}
<div v-bind:class="[activeClass, errorClass]">
data: {
activeClass: 'active',
errorClass: 'text-danger'
}
或使用三元表达式:
<div v-bind:class="[isActive ? activeClass : '', errorClass]">
它们等同于对象语法
<div v-bind:class="[{ active: isActive }, errorClass]">
定义组件
Vue.component('my-component', {
template: 'Hi
'
})
<my-component class="baz boo">my-component>
会被渲染为
<p class="foo bar baz boo">Hip>
同样的适用于绑定HTML class
<my-component v-bind:class="{ active: isActive }">my-component>
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }">div>
data: {
activeColor: 'red',
fontSize: 30
}
css属性名可以用驼峰式(camelCase)或短横分隔命名(kebab-case)。
直接绑定到一个对象上:
<div v-bind:style="styleObject">div>
data: {
styleObject: {
color: 'red',
fontSize: '13px'
}
}
<div v-bind:style="[baseStyles, overridingStyles]">
:style="{ display: ["-webkit-box", "-ms-flexbox", "flex"] }">
可以为style绑定中的属性提供一个包含多个值的数组,常用于提供多个带前缀的值。