166 lines
2.5 KiB
Markdown
166 lines
2.5 KiB
Markdown
|
# class 和 style绑定
|
|||
|
|
|||
|
### 绑定HTML class
|
|||
|
|
|||
|
- 对象语法
|
|||
|
|
|||
|
- 给v-bind:class 传入一个对象 来动态切换class
|
|||
|
|
|||
|
v-bind:class="{类名:判断条件}"
|
|||
|
|
|||
|
```
|
|||
|
<div v-bind:class="{ active: isActive }"></div>
|
|||
|
```
|
|||
|
|
|||
|
> 表示active这个class是否存在 取决于isActive 的值转化过后是否为true
|
|||
|
|
|||
|
- 传入更多字段来切换多个class
|
|||
|
|
|||
|
```
|
|||
|
<div
|
|||
|
v-bind:class="{ active: isActive, 'text-danger': hasError }"
|
|||
|
></div>
|
|||
|
```
|
|||
|
|
|||
|
附带如下 data
|
|||
|
|
|||
|
```
|
|||
|
data: {
|
|||
|
isActive: true,
|
|||
|
hasError: false
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
元素渲染结果为:
|
|||
|
|
|||
|
```
|
|||
|
<div class="active"></div>
|
|||
|
```
|
|||
|
|
|||
|
> 如果data 中的hasError的值变成 true
|
|||
|
>
|
|||
|
> 元素的渲染结果为:
|
|||
|
>
|
|||
|
> ```
|
|||
|
> <div class="active text-danger"></div>
|
|||
|
> ```
|
|||
|
|
|||
|
- v-bind:class 可以和元素上普通的class属性并存
|
|||
|
|
|||
|
```
|
|||
|
<div
|
|||
|
class="static"
|
|||
|
v-bind:class="{ active: isActive, 'text-danger': hasError }"
|
|||
|
></div>
|
|||
|
```
|
|||
|
|
|||
|
附带如下data:
|
|||
|
|
|||
|
```
|
|||
|
data: {
|
|||
|
isActive: true,
|
|||
|
hasError: false
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
元素的渲染结果为:
|
|||
|
|
|||
|
```
|
|||
|
<div class="static active"></div>
|
|||
|
```
|
|||
|
|
|||
|
- 数组语法
|
|||
|
|
|||
|
- 可以把一个数组传给 v-bind:class
|
|||
|
|
|||
|
v-bind:class="[第一个类名, 第二个类名]"
|
|||
|
|
|||
|
```
|
|||
|
<div v-bind:class="[activeClass, errorClass]"></div>
|
|||
|
```
|
|||
|
|
|||
|
```
|
|||
|
data: {
|
|||
|
activeClass: 'active',
|
|||
|
errorClass: 'text-danger'
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
渲染结果为:
|
|||
|
|
|||
|
```
|
|||
|
<div class="active text-danger"></div>
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 在数组中用对象语法
|
|||
|
|
|||
|
```
|
|||
|
<div v-bind:class="[{ active: isActive }, errorClass]"></div>
|
|||
|
```
|
|||
|
|
|||
|
### 绑定内联样式
|
|||
|
|
|||
|
- 对象语法
|
|||
|
|
|||
|
- 用javascript 对象表达css属性(不推荐)
|
|||
|
|
|||
|
v-bind:style="{css属性名: data中定义的属性值}"
|
|||
|
|
|||
|
示例:
|
|||
|
|
|||
|
```
|
|||
|
<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
|
|||
|
```
|
|||
|
|
|||
|
附data:
|
|||
|
|
|||
|
```
|
|||
|
data: {
|
|||
|
activeColor: 'red',
|
|||
|
fontSize: 30
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 直接绑定到一个样式对象上(推荐)
|
|||
|
v-bind:style="data中的数据"
|
|||
|
|
|||
|
```
|
|||
|
<div v-bind:style="styleObject"></div>
|
|||
|
```
|
|||
|
|
|||
|
附data:
|
|||
|
|
|||
|
```
|
|||
|
data: {
|
|||
|
styleObject: {
|
|||
|
color: 'red',
|
|||
|
fontSize: '13px'
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
- 绑定多个style对象
|
|||
|
|
|||
|
```
|
|||
|
<div v-bind:style="[static,choose]"></div>
|
|||
|
```
|
|||
|
|
|||
|
```
|
|||
|
data: {
|
|||
|
static: {
|
|||
|
fontSize: '13px'
|
|||
|
border:'1px solid red'
|
|||
|
},
|
|||
|
choose:{
|
|||
|
color:'red'
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
|