通过
v-bin
来绑定Class和Style,来给标签设置动态的值
动态的Class
语法
<div :class="{ 类名: Vue变量(布尔值) }"></div>
<template>
<div>
<!-- 语法:
:class="{类名: 布尔值}" 为true时添加class false时删除
使用场景: vue变量控制标签是否应该有类名
:class 可以和 class 共存
-->
<p class="active" :class="{red_str: bool}">动态class</p>
</div>
</template>
<script>
export default {
data(){
return {
bool: true
}
}
}
</script>
<style scoped> /* 设置样式 */
.red_str{
color: red;
}
.active{
color:#ff0;
}
</style>
三元表达式来判断添加类
<p :class="{item.price>100?.red_str:'' }">动态class</p>
如果大于100就显示
也可以添加多个类
<p class="active" :class="{red_str: bool,'text-bgc': bool}">动态class</p>
不写在标签里
<p :class="classObj" >动态class</p>
<script>
export default {
data() {
return {
classObject: {
active: true,
'text-danger': false //当类名中包含特殊字符如横线-空格等js不支持的变量时需要用引号。
}
}
}
}
</script>
动态的Style
语法
<div :style="{ css属性名: 值(Vue变量表示), fontSize: fontSize + 'px' }"></div>
<template>
<div>
<!-- 动态style语法
:style="{css属性名: 值}"
-->
<p :style="{backgroundColor: colorStr}">动态style</p>
</div>
</template>
<script>
export default {
data(){
return {
colorStr: 'red'
}
}
}
</script>
不写在标签里
多个css样式存入对象里
<template>
<div>
<p :style="styleObj">动态style</p>
</div>
</template>
<script>
export default {
data(){
return {
styleObj:{
color: 'red',
fontSize: '13px'
}
}
}
}
</script>
多个对象存入数组里
<p :style="[styleObj,otherStyObj]">动态style</p>