动态添加style
<div :style="s1">123</div>
<div :style="s2">123</div>
<div :style="s3">123</div>
<div :style="{ color: color1 , fontSize: fontsize1 + 'px'}">123</div>
<div :style="`color: ${color1}`">123</div>
<div :style='"color: " + color1'>123</div>
<!-- 数组 -->
<div :style="[s4, s5]">123</div>
<!-- 三目运算符 -->
<div :style="{ color: (num == 1 ? color2:'red')}">123</div>
<div :style="[{ color: (num != 1 ? color2:'blue')},{fontSize:'20px'}]">123</div>
<!-- [多重值] 此时,浏览器会根据运行支持情况进行选择 -->
<div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }">
<div>1</div>
<div>2</div>
</div>
data: {
color1: 'red',
fontsize1: 60,
num: 1,
color2: 'green',
s1: 'color: orange;',
s2: { color: 'pink' }, // key-value形式
// 多个key-value形式样式,style属性名有-的改为驼峰式
s3: { color: 'skyblue', fontSize: '20px' },
s4: { color: 'orange' },
s5: { fontSize: '50px', fontWeight: 'bold' },
}
动态绑定class
1
<div :class="{ 'active': isActive }"></div>
<div :class="{'active':isActive == index}"></div>
<div :class="{ 'active': isActive, 'sort': isSort }"></div>
2
<div :class="classObject"></div>
classObject:{ active: true, sort:false }
或 使用computed属性
data() {
return {
isActive: true,
isSort: false
}
},
computed: {
classObject: function () {
return {
active: this.isActive,
sort:this.isSort
}
}
}
3 数组
<div :class="[isActive,isSort]"></div>
isActive:'active',
isSort:'sort'
- 数组与三元运算符结合判断选择需要的class
(注意:三元运算符后面的“:”两边的class需要加上单引号,否则不能正确渲染)
<div :class="[isActive?'active':'']"></div>
<div :class="[isActive === index?'active':'otherClass']"></div>
- 数组对象结合动态判断
// 前面这个active在对象里面可以不加单引号,后面这个sort要加单引号
<div :class="[{ active: isActive }, 'sort']"></div>
<div :class="[{ active: isActive === index }, 'sort']"></div>