Vue中通过属性绑定为元素设置class类样式

1.数组

<h1 :class="['red','italic']">这是一个很大的H1,大到你无法想象</h1>

2.数组中使用三元表达式

<h1 :class="['thin','italic',isactive?'active':'']">这是一个很大的H1,大到你无法想象</h1>

3.数组中嵌套对象

<h1 :class="['thin','italic',{'active':isactive}]">这是一个很大的H1,大到你无法想象</h1>

4.直接使用对象

<h1 :class="{red:true,italic:true,active:false}">这是一个很大的H1,大到你无法想象</h1>

完整代码:

<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style>
      .red{
        color:red;
      } 
      .thin{
        font-weight: 200;
      }
      .italic{
        font-style: italic;
      }
      .active{
        letter-spacing: 0.5em;
      }
    </style>
  </head>
<body>
  <div id='app'>
    <!-- <h1 class="red thin">这是一个很大的H1,大到你无法想象</h1> -->
    <!--第一种使用方式,直接传递一个数组,注意,这里的class需要使用v-bind做数据绑定--> 
    <h1 :class="['red','italic']">这是一个很大的H1,大到你无法想象</h1>

    <!--在数组中使用三元表达式--> 
    <h1 :class="['thin','italic',isactive?'active':'']">这是一个很大的H1,大到你无法想象</h1>

    <!--在数组中使用对象来代替三元表达式,提高代码可读性-->
    <h1 :class="['thin','italic',{'active':isactive}]">这是一个很大的H1,大到你无法想象</h1>

    <!--在为class用v-bind绑定对象的时候,对象的属性是类名,对象的属性可带引号,也可不带。属性的值是一个标识符 -->
    <h1 :class="classObj">这是一个很大的H1,大到你无法想象</h1>
  </div>
</body>
<script src="vue.min.js"></script>
<script>
  var vm = new Vue({
    el:'#app',
    data:{
      isactive:true,
      classObj:{red:true,italic:true,active:false},
    },
  });
</script>
</html>

猜你喜欢

转载自blog.csdn.net/xukongjing1/article/details/81584017