vue学习(五)【vue样式绑定:对象或数组】
点击改变文字颜色
第一种:class的对象绑定
<!--数据双向绑定的实例-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>样式绑定</title>
<script src="./vue.js"></script>
<style>
.activated {
color: red;
}
</style>
</head>
<body>
<div id="root">
<!--class对象,注意以下的写法-->
<div @click="handleDivClick"
:class="{activated: isActivited}"
>
Hello World
</div>
</div>
<script>
var vm = new Vue({
el: "#root",
data: {
isActivited: false/*默认置false*/
},
methods: {
handleDivClick: function () {
this.isActivited = !this.isActivited;/*每次点击让该变量取反*/
}
}
})
</script>
</body>
</html>
第二种方法:通过定义class数组,可以定义多个style。都可以起作用
<!--数据双向绑定的实例-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>样式绑定</title>
<script src="./vue.js"></script>
<style>
.activated {
color: red;
}
.activated_one {
font-size: 100px;
}
</style>
</head>
<body>
<div id="root">
<!--绑定一个class数组,所以数组中可以有多个属性名,当某一个属性值不为空时,那个起作用-->
<div @click="handleDivClick"
:class="[activated,activated_one]"
>
Hello World
</div>
</div>
<script>
var vm = new Vue({
el: "#root",
data: {
activated: "activated",
activated_one: "activated_one"
},
methods: {
handleDivClick: function () {
/*activated刚好是style中定义的activated*/
this.activated = this.activated === "activated" ? "" : "activated";
}
}
})
</script>
</body>
</html>
第三种:style对象
<!--数据双向绑定的实例-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>样式绑定</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="root">
<!--绑定一个class数组,所以数组中可以有多个属性名,当某一个属性值不为空时,那个起作用-->
<div :style="styleObj"
@click="handleDivClick">
Hello World
</div>
</div>
<script>
var vm = new Vue({
el: "#root",
data: {
styleObj: {
color: "black"
}
},
methods: {
handleDivClick: function () {
this.styleObj.color = this.styleObj.color === "black" ? "red" : "black";
}
}
})
</script>
</body>
</html>
第四种,style数组
<div :style="[styleObj,{fontSize:'100px'}]"
@click="handleDivClick">
Hello World
</div>