1.  
  2. 主页
  3.  / 
  4. Vue教程
  5.  / 
  6. Vue教程之Class样式绑定

Vue教程之Class样式绑定

介绍

操作元素的 class 列表和内联样式是数据绑定的一个常见需求。

因为它们都是 属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。

不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。

实例演示

<template>
  <div>
    <h1 :class="fontColor">hello world!!!</h1>
    <button @click="cutover">切换</button>
  </div>
</template>

<script>
export default {
  data () {
    return {
      fontColor: 'fontColorRed'
    }
  },
  methods: {
    cutover () {
      this.fontColor = 'fontColorBlue'
    }
  }
}
</script>

<style scoped>
  .fontColorRed {
    color: red;
  }

  .fontColorBlue {
    color: blue;
  }
</style>

对象语法

前面说到了Vue.js对class和style拓展了对象语法和数组语法,下面我们就介绍以下对象语法。

我们可以传给 v-bind:class 一个对象,以动态地切换 class:

<template>
  <div>
    <h1 :class="{fontColorRed:isFontColorRed, fontSize: isFontSize}">hello world!!!</h1>
  </div>
</template>

<script>
export default {
  data () {
    return {
      isFontColorRed: true,
      isFontSize: true
    }
  }
}
</script>

<style scoped>
  .fontColorRed {
    color: red;
  }

  .fontSize {
    font-size: 50px;
  }
</style>

数组语法

我们可以把一个数组传给 v-bind:class,以应用这个 class 列表:

<template>
  <div>
    <h1 :class="[fontColorRed, fontSize]">hello world!!!</h1>
  </div>
</template>

<script>
export default {
  data () {
    return {
      fontColorRed: 'fontColorRed',
      fontSize: 'fontSize'
    }
  }
}
</script>

<style scoped>
  .fontColorRed {
    color: red;
  }

  .fontSize {
    font-size: 50px;
  }
</style>

这篇文章对您有用吗?

我们要如何帮助您?

发表评论

您的电子邮箱地址不会被公开。