绑定单个或者多个Class名用Vue
一、用 变量形式 绑定单个 Class 名
在 vue
中绑定单个 class
名还好说,直接写就可以了
<template>
<div id="app">
<!-- 因为是自定义属性,所以要用到 v-bind ,简写为 : -->
<!-- 3.将 box 绑定给 div -->
<div :class="box"></div>
</div>
</template>
<script>
export default {
name: 'app',
data () {
return {
// 2.在 data 中把 yellow 赋给 box
box: 'yellow'
}
}
}
</script>
<style>
/* 1.在样式表中写好样式 */
.yellow{
width: 200px;
height: 200px;
background: #ff0;
}
</style>
![](http://upload-images.jianshu.io/upload_images/4279446-56c1db098cae1b23.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/256)
用 Vue 绑定单个Class 名
二、用 数组形式 绑定多个 Class 名
比如我们想再给这个 div
加个阴影
在 style
中写好样式
.shadow{
box-shadow: 10px 10px 5px 0 #999;
}
在 data
中继续添加数据对象
<script>
export default {
name: 'app',
data () {
return {
box: 'yellow',
shadow:'shadow'
}
}
}
</script>
在标签中以数组的形式绑定 Class
名
<template>
<div id="app">
<div :class="[box,shadow]"></div>
</div>
</template>
就 OK 了。
![](http://upload-images.jianshu.io/upload_images/4279446-86305ceb701f9ced.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/262)
用 数组形式 绑定多个 Class 名
三、用 json 形式 绑定多个 Class 名
该方法方便用于当同时添加多个 Class 名时,在某种情况下判断显示哪种样式
先写好样式
<style>
.yellow{
width: 200px;
height: 200px;
background: #ff0;
}
.shadow{
box-shadow: 10px 10px 5px 0 #999;
}
</style>
在 data
中添加数字对象,用来做判断
<script>
export default {
name: 'app',
data () {
return {
show1:true,
show2:false
}
}
}
</script>
以 json
的形式绑定到 class
中,通过布尔值改变 show1
与 show2
的值,来控制 div
的状态
<template>
<div id="app">
<div :class="{yellow:show1,shadow:show2}"></div>
</div>
</template>
![](http://upload-images.jianshu.io/upload_images/4279446-c12bc0dbd75cf507.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/270)
用 json 形式 绑定多个 Class