时间:2022-04-14
更新:2022-04-18
原因解释
在 v-for 写入到 style 或 class,特别是绑定的 :style、:class 就不生效
:class 写法
1、三元运算
(1)首先拿一个变量(value)作为判断值;
(2)当为判断结果为 true ,此时付给该盒子 class名1 ,否则 class名2;
(3)注意,最外层为 双引号,内层为 单引号;
<div :class="[value === 'true'? 'className1' : 'className2']"></div>
.className1 {
color: red;
}
.className2 {
color: blue;
}
2、变量
<div :class="{classA:a, classB:b}"></div>
new Vue({
el:'#app',
data:{
a:true, // 根据 true/false 判断是否执行 class
b:true,
}
})
3、对象
<div :class="test"></div>
new Vue({
el:'#app',
data:{
test:{
color:red;
background:yellow;
}
}
})
4、数组
<div :class="[test1, test2]"></div>
new Vue({
el:'#app',
data:{
test1Class:test1,
test2Class:test2
}
})
:style 写法
1、变量
<div :style="{height: H + 'px' }">你懂的</div>
new Vue({
el:'#app',
data:{
H: 250,
}
})
2、对象
<div :style="testObj">你懂的</div>
new Vue({
el:'#app',
data:{
testObj:{
color: yellow;
background: yellow;
}
}
})
3、三元运算
<div :style="{'height': (item.height >= 177 ? '182' : '180') + 'px'}">你懂的</div>