Vue中的样式绑定

Posted shengjunyong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue中的样式绑定相关的知识,希望对你有一定的参考价值。

一、动态绑定class

1、直接使用data数据

<style>
    .activated {
        color: red;
    }
</style>
<div id="app">
    <div :class="activated" @click="handleDivClick">
        Hello world
    </div>
</div>
<script>
    // var vm = new Vue({
    //     el: "#app",
    //     data: {
    //         isActivated: false
    //     },
    //     methods: {
    //         handleDivClick(){
    //             this.isActivated = !this.isActivated
    //         }
    //     }
    // })
    var vm = new Vue({
        el: "#app",
        data: {
            activated: ""
        },
        methods: {
            handleDivClick: function(){
                this.activated = this.activated === "activated" ? "" : "activated"
            }
        }
    })
</script>

 

2、多个类名用数组语法

<style>
.activated {
color: red;
}
.bg-color {
background: yellow;
}
</style>
<div id="app">
<div :class="[activated,bgColor]" @click="handleDivClick">
Hello world
</div>
</div>
<script>
var vm = new Vue({
el: "#app",
data: {
activated: "",
bgColor: "bg-color"
},
methods: {
handleDivClick: function(){
this.activated = this.activated === "activated" ? "" : "activated"
}
}
})
</script>

 

3、class对象语法

<style>
    .activated {
        color: red;
    }
</style>
<div id="app">
    <div :class="{activated: isActivated}" @click="handleDivClick">
        Hello world
    </div>
</div>
<script>
    var vm = new Vue({
        el: "#app",
        data: {
            isActivated: false
        },
        methods: {
            handleDivClick(){
                this.isActivated = !this.isActivated
            }
        }
    })
</script>

 

二、动态绑定style

style动态绑定的css,也是以对象的形式写出

<style>
.activated {
color: red;
}
.bg-color {
background: yellow;
}
</style>
<div id="app">
<div :style="styleObj" @click="handleDivClick">
Hello world
</div>
</div>
<script>
var vm = new Vue({
el: "#app",
data: {
styleObj:{
color: "black",
background: "yellow"
}
},
methods: {
handleDivClick(){
this.styleObj.color = this.styleObj.color === "black" ? "red" : "black"
}
}
})
</script>

同样也可以通过数组,绑定多个对象,font-size写成属性可以写成fontSize, 或者font-size加单引号

 <div :style="[styleObj,{fontSize:‘20px‘}]" @click="handleDivClick">
        Hello world
    </div>

 

 

以上是关于Vue中的样式绑定的主要内容,如果未能解决你的问题,请参考以下文章

Vue中的样式绑定

vue中的class与style绑定

05《Vue 入门教程》Vue 动态样式绑定

Vue中的样式绑定

15 Vue中子组件样式的绑定和行内样式模版编写

vue中的操作样式