zoukankan      html  css  js  c++  java
  • vue的:class和:style

    :style总结:

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

    一. 对象语法

    <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>
    

    二. 数组语法

    <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动态改变背景

    <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总结

    <style>
      .red{color:red;}
      .blue{background-color:blue;}
    </style>
    

    方法一:单体写法

    <div :class="classA">Demo2</div>
    data: {
      classA: 'class-a'  //当classA改变时将更新class
    }
    
    

    方法二:对象语法

    //1.单或多对象写法
    	:class="{red:isred,blue:isbule}"
      data:{
        	isred:true,
          isblue:false
       }
    
    //2.json对象
     :class="json"
     data:{  //把属性都放在一个对象里面
       json:{
       	 red:false,
         blue:true
       }
      }
    

    方法三:数组语法

    //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的计算属性

    	: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属性时要注意有些以-连结的词,要改为驼峰式写法,或者是使用单引号括起来。

    博客首发于 https://www.leader755.com/
  • 相关阅读:
    字符串语法
    组合数
    并查集
    Java Collection HashMap源码分析
    Java 虚拟机 ClassLoader
    Java 多线程 Future
    Java 虚拟机 GC机制
    Java 基础 原生类型
    Java 多线程 死锁deadlock产生原因+避免方法
    Java 基础 基本类型vs引用类型,传值vs传引用
  • 原文地址:https://www.cnblogs.com/leader755/p/14284840.html
Copyright © 2011-2022 走看看