vue 中属性及样式的绑定

136 阅读1分钟

一、普通的绑定样式直接在style中写好样式,然后直接在需要的地方使用class="定义的样式名称"就可以了

<template>
    <div class="green">
        你好 vue

    </div>
</template>

<script>
    export default {
        
    }
</script>

<style lang="scss" scoped>
.green{
    width: 100px;
    height: 50px;
    background: rgb(212, 111, 16);
}
</style>

运行后展示下图

二、绑定动态的样式在data中定义一个属性,然后在需要用到的地方使用 v-bind:class="属性名称"或者使用简写形式:class="属性名称"

<template>
    <div :class="myClass">
        你好 vue

    </div>
</template>

<script>
    export default {
        data(){
            return{
                myClass:"green",
            }
        }
    }
</script>

<style lang="scss" scoped>
.green{
    width: 100px;
    height: 50px;
    background:green;
}
</style>

三、绑定多个属性class 在data中定义属性是否显示,即bool类型,true的时候显示属性。在要使用的地方使用key-value的形式 :class="{'active':isActive,'green':isGreen}" 这个意思是isActive为 true的时候显示active样式,放在大括号里,多个属性使用逗号分开

<template>
    <div :class="{'active':isActive,'green':isGreen}">
        你好 vue

    </div>
</template>

<script>
    export default {
        data(){
            return{
                myClass:"green",
                isActive:true,
                isGreen:true
            }
        }
    }
</script>

<style lang="scss" scoped>

.active{
    display: block;
    font-size: 30px;
    color:red;
}
.green{
    width: 200px;
    height: 50px;
    background:green;
}
</style>

展示效果如下,两个都为true的时候,样式起作用

四、混合写法 普通写法与绑定动态属性写法一起使用也是可以的,代码如下

<template>
    <div class="green" :class="{'active':isActive}">
        你好 vue

    </div>
</template>

展示效果跟上图一样

五、使用数组形式绑定 将定义好的样式绑定到data里面的属性,然后,使用:class="[]"绑定多个属性,属性间用逗号分开

<template>
    <div :class="[isActive,isGreen]">
        你好 vue

    </div>
</template>

<script>
    export default {
        data(){
            return{
                isActive:"active",
                isGreen:"green"
            }
        }
    }
</script>

<style lang="scss" scoped>

.active{
    display: block;
    font-size: 30px;
    color:red;
}
.green{
    width: 200px;
    height: 50px;
    background:green;
}
</style>

六、数组与三元运算符结合判断选择需要的class

<div :class="[isActive?'active':'green']">  

解读:当isActive为 true 的时候展示 active 样式 ,false的时候展示 green 样式 七、数组对象结合动态判断

<div :class="[{active:isActive},'green']"> 

解读:展示green,并且 isActive 为 true 的时候 active 样式生效 八、判断是否绑定一个active样式

<div :class="{'active':isActive==1}"> 

解读:如果isActive=1 ,那么展示 active 样式