:class-绑定class样式,字符串写法——适用于样式的类名不确定需要动态指定
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.basic{
width: 400px;
height: 100px;
border: 1px solid black;
}
/* 下面是任选一个不可以重复 */
.happy{
border: 1px solid red;
background-image: linear-gradient(to bottom left,yellow , pink,orange,yellow);
}
.sad{
border: 1px dashed green;
background-color: gainsboro;
}
.normal{
border: 1px solid teal;
background-color: burlywood;
}
/* 可以同时选择 */
.a1{
background-color: greenyellow;
}
.a2{
font-size: 30px;
text-shadow: 2px 2px 10px red;
}
.a3{
border-radius: 20px;
}
</style>
<script type="text/javascript" src="./js引入/测试版本/vue.js"></script>
</head>
<body>
<!-- 准备容器 -->
<div id='root'>
<!-- 变化的样式使用绑定书写 -->
<div class="basic" :class="a" @click="changeMod">{{name}}</div>
</div>
<script>
const vm=new Vue({
el: '#root',
data:{//属性
name:"me",
a:'normal'//变量是字符串适用于样式的类名不确定需要动态指定
},
methods: {
changeMod(){
this.a='happy'
}
},
});
</script>
</body>
</html>
需要进行样式的随机选取
methods: {
changeMod(){
//this.a='happy'
//不仅仅是happy样式其他样式也要 准备数组
const arr=['happy','sad','normal']
//使用索引取东西,生成随机数
const index = Math.floor(Math.random()*3)//永远不可能取值03 所以需要取整
this.a=arr[index]
}
},
:class-绑定class样式,数组写法——适用于要绑定多个样式,个数不确定,名字也不确定
<!-- 准备容器 -->
<div id='root'>
<!-- 变化的样式使用绑定书写 -->
<div class="basic" :class="a" @click="changeMod">{{name}}</div>
<br>
<div class="basic" :class="arr" @click="changeMod">{{name}}</div>
</div>
<script>
const vm=new Vue({
el: '#root',
data:{//属性
a:'normal',//变量是字符串适用于样式的类名不确定需要动态指定
arr:['a1','a2','a3']
},
也可直接写:使用表达式,但是Vue不帮你管理了
这里面的是值:使用引号
<div class="basic" :class="[a,b,c]" @click="changeMod" >{{name}}</div>
所以应该写成:不加引号是寻找变量(比较麻烦)
const vm = new Vue({
el: '#root',
data: {//属性
name: "hello",
a: 'normal',//变量是字符串适用于样式的类名不确定需要动态指定
// arr: ['a1', 'a2', 'a3'],
a:'a1',
b:'a2',
c:'a3'
},
对象写法适用于:要绑定的样式,个数确定,名字也确定,但是动态决定用不用
<!-- 对象写法适用于:要绑定的样式,个数确定,名字也确定,但是动态决定用不用 -->
<div class="basic" :class="classobj" @click="changeMod">{{name}}</div>
const vm = new Vue({
el: '#root',
data: {//属性
name: "hello",
a: 'normal',//变量是字符串适用于样式的类名不确定需要动态指定
arr: ['a1', 'a2', 'a3'],
// a:'a1',
// b:'a2',
// c:'a3',
classobj:{
a1:false,//这个样式没有
a1:true,//这个样式有
}
},
同样可以简写成为
<div class="basic" :class="{a1:'ture',a2:'true'}">{{name}}</div>
但是不好配置,同样可以使用变量进行管理。但是更麻烦了