首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >vue的!class和!style

vue的!class和!style

作者头像
leader755
发布2022-03-07 15:28:10
发布2022-03-07 15:28:10
92600
代码可运行
举报
运行总次数:0
代码可运行

:style 总结:

写 inline style 的方法跟 class 大同小异,一样可以使用阵列及物件语法,但在给css 属性时要注意有些以**-**连结的词,要改为驼峰式写法,或者是使用单引号括起来

一. 对象语法

代码语言:javascript
代码运行次数:0
运行
复制
<div id="app">
   <!--单个属性-->
   
  <div v-bind:style="{ color: activeColor}">color:{{activeColor}}</div>
   <!--驼峰写法-->
   
  <div v-bind:style="{'text-align':textAlign,fontSize: fontSize + 'px'}">
    text-align:{{textAlign}},fontSize:{{fontSize}}px
  </div>
   <!--一个对象-->
   
  <div v-bind:style="styleObject">{{styleObject}}</div>
</div>

二. 数组语法

代码语言:javascript
代码运行次数:0
运行
复制
<div id="app">
   <!--整个数组-->
   
  <div v-bind:style="[baseStyles, overridingStyles]">
    {{[baseStyles, overridingStyles]}}
  </div>
   <!--数组+三元表达式-->
   
  <div v-bind:style="[{backgroundColor:isActive ? '#f00' : '#00f'},baseStyles]">
    如果isActive==true,背景红色
  </div>
   <!--对象+数组-->
   
  <div v-bind:style="[{ baseStyles: Active }, overridingStyles]">
    {{[{ baseStyles: Active }, overridingStyles]}}
  </div>
</div>

三. :style 动态背景

代码语言:javascript
代码运行次数:0
运行
复制
<div @click="istrue=!istrue" :style="{'height':'200px','width':'100px','background-size':'100%,100%','background-repeat':'no-repeat','background-image':`url(${istrue?'../../../static/1.png':'../../../static/2.png'})`}"> </div>

data:{
    istrue:false
}

:class 总结

代码语言:javascript
代码运行次数:0
运行
复制
<style>
  .red{color:red;}
  .blue{background-color:blue;}
</style>

方法一:单体写法

代码语言:javascript
代码运行次数:0
运行
复制
<div :class="classA">Demo2</div>
data: {
  classA: 'class-a'  //当classA改变时将更新class
}

方法二:对象语法

代码语言:javascript
代码运行次数:0
运行
复制
//1.单或多对象写法
    :class="{red:isred,blue:isbule}"
  data:{
        isred:true,
      isblue:false
   }

//2.json对象
 :class="json"
 data:{  //把属性都放在一个对象里面
   json:{
        red:false,
     blue:true
   }
  }

方法三:数组语法

代码语言:javascript
代码运行次数:0
运行
复制
//1.整个数组
    :class="[reds,blues]">
  data:{
    reds:"red",   //此处的red和blue指的是style中的red类和blue类
   blues:"blue"
  }
 
//2.对象+数组
    :class="[classA, classB]"
  data:{
    classA: 'class-a',
          objectClass: {
            classB: 'class-b',  // classB 的值为class-b, 则将classB的值添加到class列表
                classC: false,    // classC值为false,将不添加classC
            classD: true    // classD 值为true,classC将被直接添加到class列表
             }
   }
     //渲染后: class="class-a class-b classD"

//3.数组+三元表达式
1>
 :class="[isActive ? activeClass : '', errorClass]"
 data: {
   isActive: true,
   activeClass: 'active',
   errorClass: 'text-danger'
 }

2>
 <el-button  :class="['uploadclass',status === 'view'? 'uploadClass-no':'uploadClass-hover']" :disabled="status === 'view'"> </el-button>

方法四:利用 computed 的计算属性

代码语言:javascript
代码运行次数:0
运行
复制
    :class="classObject"
     data: {
          isActive: true,
          error: null
        },
        computed: {
             classObject () {
                return {
                      active: this.isActive && !this.error,
                      text-danger': this.error && this.error.type === 'fatal'
                    }
           }
        }

总结:

总体而言,:class 和:style 语法基本相似,但是需要注意的是css 属性时要注意有些以**-**连结的词,要改为驼峰式写法,或者是使用单引号括起来。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • :style 总结:
    • 一. 对象语法
    • 二. 数组语法
    • 三. :style 动态背景
  • :class 总结
    • 方法一:单体写法
    • 方法二:对象语法
    • 方法三:数组语法
    • 方法四:利用 computed 的计算属性
  • 总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档