vue学习-class style绑定

1.class绑定方式

1.对象语法绑定(class名称有-的需要用'')

red-a和bold是否在这个div出现,取决于属性isRed和isBold

<div :class="{'red-font': isRed, bold: isBold}">红色加粗</div>

 

2.classObj不内联

<div :class="classObj">加粗</div>
data() {
    return { 
      classObj: {
        bold: true,
      }
    }
  }

3.classObj为计算属性(常用且强大)

<div :class="classCmp">红色</div>
  computed: {
    classCmp() {
      return {
        'red-font': this.isRed
      }
    }
  }

4.数组语法

<div :class="[classA, classB]">红色加粗</div>
<div :class="classA">红色</div>
  data() {
    return { 
      classA: 'red-font',
      classB: 'bold'
    }
  }

5.来自父组件的class

<div id="father">
  <child-component class="father-class"></my-component>
</div>

当子组件只有一个根元素的时候,来自父组件的class会直接加到这个根元素上

如: <div class="child-class father-class" data-v-0999612c="">

<template>
<div class="child-class">
......
</div>
</template>

当子组件有多个根元素,那么都不会生效。除非使用$attrs定义哪些元素(不需要为根元素)接受来自父组件的类

<template>
  <div>没有父元素的class</div>
  <div>
    没有父元素的class
    <div :class="$attrs.class">有父元素的class</div>
  </div>
  <div :class="$attrs.class">有父元素的class</div>
</template>

 


2.style绑定方式

style绑定方式和class基本一样:styleObj  styleCmp  数组语法。只是没有来自父组件的style写法

<div :style="styleObject">黄色</div>
data() {
    return {
      styleObject: {
        color: 'yellow',
      }
    }
  },

多重值,常用于提供多个带前缀的值

这样写只会渲染数组中最后一个被浏览器支持的值(意思后面的值优先使用,除非不支持)

<div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>
<div :style="{ color: ['red', 'green', 'yellow233'] }">绿色</div>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值