欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vue中class与样式style绑定

程序员文章站 2022-07-04 19:33:31
...

这里记录vue中class与style的绑定,参考官方文档:
class与style绑定

class绑定

方法:
1、直接使用变量
2、对象
3、数组
4、数组和对象

1、直接使用变量

<!-- :class='变量' -->
<div :class="redColor">阿斯蒂芬1</div> 

2、对象

red和font32是字符串类名,会根据条件isTrue进行判断,返回为truthy真值

<!-- :class='对象' -->
<div :class="{red:isTrue,'font32':isTrue}">阿斯蒂芬4</div>

3、数组

数组里面的是两个变量

<!-- :class='数组' -->
<div :class="[fontSize,redColor]">阿斯蒂芬3</div>

3、三目运算

这样写时fontSize会一直存在,但是redColor会根据条件isTrue判断

<!-- :class='[三目运算]' 三目运算必需写在数组里面-->
<div :class="[isTrue?redColor:'',fontSize]">阿斯蒂芬2</div>

4、数组对象混用

像3那样,如果有多个class时就会繁琐,我们可以采取数组与对象混用
改写成,red是字符串class类名,fontSize是变量

<div :class="[{red:isTrue},fontSize,">阿斯蒂芬5</div>

class用在组件上

当在一个自定义组件上使用class时,这些class将被添加到该组件的根元素上面,这个元素上已经存在的class不会被覆盖。
例如你声明了一个组件:

Vue.component(my-com,{
	template:"<div class="font32 red">hello </div>"
})

然后在使用它的时候添加一些样式:

<my-com class="foo baz"></my-com>

HTML将会被渲染为

<div class="font32 red foo baz" >hello </div>

对带数据绑定class一样适用

如果isTrue返回真truthy真值时,将会渲染为

<div class="font32 red active" >hello </div>

style样式绑定

1、对象语法

style样式的绑定v-bind:style的对象语法十分的直观,看着就和css样式一样,但其实是一个JavaScript对象,

<div :style="{color:'red','font-size':'32px'}">爱上了吉安</div>

也可以这样写
activeColor和fontSize是变量

<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>

或者是直接绑定到一个样式对象通常会更好,会让模板更清晰,如下

2、使用对象变量

<div v-bind:style="styleObject"></div>
//data中的styleObject
  styleObject: {
    color: 'red',
    fontSize: '13px'
  }

3、数组语法

v-bind:style的数组语法可以将多个样式对象应用到同一个元素身上:
baseStyles和overridingStyles是两个样式对象

<div v-bind:style="[baseStyles, overridingStyles]"></div>

4、多重值

从 vue 2.3.0 起你可以为 style 绑定中的属性提供一个包含多个值的数组,常用于提供多个带前缀的值,例如:

<div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>

这样写只会渲染数组中最后一个被浏览器支持的值。在本例中,如果浏览器支持不带浏览器前缀的 flexbox,那么就只会渲染 display: flex

相关标签: vue class vue style