欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue動態(tài)樣式方法實例總結

 更新時間:2023年02月07日 09:52:01   作者:SuperYiY  
在vue項目中,很多場景要求我們動態(tài)改變元素的樣式,下面這篇文章主要給大家介紹了關于Vue動態(tài)樣式方法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

前言

本文主要針對 Vue2.x 來展開vue的動態(tài)css樣式方法歸納。
如果親愛的讀者們需要,后續(xù)會更新Vue3的動態(tài)樣式方法或者使用TypeScript來實現(xiàn)。
CSS動態(tài)樣式 一般用于設置某個字段根據(jù)狀態(tài)顯示不同的樣式。
比如 字段A,平時返回0,正常顯示字段黑色;返回1時,顯示異常,文字顏色為紅色

Vue動態(tài)樣式實現(xiàn)方式

  • :style 動態(tài)設置style行內樣式,優(yōu)先級最高
  • :class 動態(tài)設置class類名
  • method:{} 調用方法return返回
  • v-if/v-else + 復合類名

:style

// 1、三元表達式  對象形式
<div class="name" :style="{color:state == true ? 'red' : 'black'}">麻辣香鍋</div>
<div class="name" :style="state == true ? 'color:red' : 'color:black'">麻辣牛鍋</div>
// 2、直接對象形式  
<div class="name" :style="{fontSize:`${size}px`}">麻辣火鍋</div>
// 3、數(shù)組形式
<div class="name" :style="[styleObj1,styleObj2]">麻辣香鍋</div>
// 4、復合型
<div class="name" :style="[{color:state ? 'red' : 'black'},styleObj2]">麻辣香鍋</div>
// 4、調用方法形式
<div class="name" :style="setStyle()">麻辣雞煲</div>
export default {
	data(){
    	return{
            state:1,
            size:14,
            Obj1:{
                color:red
            },
            Obj2:{
                fontSize:12px
            }
        }
	},
    method:{
        setStyle(){
            let obj = {
                color:'red',
                fontSize:'14px'
            }
            return obj
        }
    }
}
<style>
  .name{
    color:yellow;
    font-size:12px;
  }
</style>

注意:

  • HTML上調用的所有東西,最好是該vue實例的data、method、watch、computed等本身的變量和函數(shù),一般不要直接調用外部的函數(shù),比如是工具類untils的方法,有需要可以在data中新建變量綁定在HTML上,在data方法或其他方式去調用。
  • js的樣式屬性名注意用駝峰命名法,比如font-size —— fontSize

:class

// 1、三元表達式,對象/數(shù)組形式,單個條件
<div class="name" :class="{'success-text':state == true}">廣式煲仔飯</div>
<div :class="['name', state == true ? 'success' : '']">廣式煲仔飯</div>
// 相當于
<div class="name" :class="state == true ? 'success-text : ''">廣式煲仔飯</div>

// 2、對象形式,多個條件
<div class="name" :class="{'success-text':state == true,'success-text2':state2 == true}">廣式煲仔飯</div>

// 3、data形式或者computed形式   (缺點就是類名一定只能是一個單詞)
<div class="name" :class="classObject">廣式煲仔飯</div>
<div class="name" :class="classObject_cp">廣式煲仔飯</div>

// 4、mothod方法
<div class="name" :class="setClass()">廣式煲仔飯</div>
<button @click="state = state ? false : true">改變state狀態(tài)</button>

export default {
  data () {
    return {
      state:true,
      state2:true,
      styleObj1:{
        color:'red'
      },
      styleObj2:{
        fontSize:'14px'
      },
      classObject:{
        success_text:true,  // 因為變量名不能用-來隔開,所以只能匹配到_或只有一個單詞的類名
        success_text2:true
      }
    }
  },
  computed:{
    classObject_cp:function(){
      return{
        success:this.state,
        success2:this.state2
      }
    }
  },
  methods: {
    setClass(){
      return {
        success_text:this.state,
        success_text2:this.state2
      }
    },
    changeState(){
      this.state = this.state ? false : true
    }
  }
}
<style>
  .name{
    color:yellow;
    font-size:12px;
  }
  .error-text{
    color:red;
  }
  .success-text{
    color:greenyellow;
  }
  .success-text2{
    font-size:16px;
    font-weight: 600;
  }
  .success{
    color:greenyellow;
  }
  .success2{
    font-size:16px;
    font-weight: 600;
  }
</style>

:class 目標就是通過判斷找到對應的css類名

方法3或4,注意類名只能是單個單詞或_連接等,此外的,都不行,因為js變量名是以單個單詞組成的。

比如這里success-text,變量無法表達出來,就算了駝峰命名也不行,因為successText是類名,不像:style行內式,是作為css屬性名。

:style優(yōu)先級高,無需考慮本標簽元素class的屬性,因為一定會被style相同的屬性所覆蓋;

v-if/v-else + 復合類名

        <div class="father">
          <div class="child success-text">child</div>
          <div class="child">
            <div v-if="state == true" class="success-text">child</div>
            <div v-else-if="state == false" class="error-text">child</div>
            <div v-else>--</div>  
          </div>
          <div class="child">child</div>
        </div>

    <style>
        .father{
            color:black
        }
        .child{
            fotn-size:16px
        }
        .success-text:{
            color:green
        }
        .error-text{
            color:red
        }
    </style>

結尾

到此這篇關于Vue動態(tài)樣式方法的文章就介紹到這了,更多相關Vue動態(tài)樣式方法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue實現(xiàn)全選組件封裝實例詳解

    vue實現(xiàn)全選組件封裝實例詳解

    這篇文章主要介紹了vue?全選組件封裝,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • vue中三種不同插槽使用小結

    vue中三種不同插槽使用小結

    本文主要介紹了vue中三種不同插槽使用小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • ant design vue 清空upload組件圖片緩存的問題

    ant design vue 清空upload組件圖片緩存的問題

    這篇文章主要介紹了ant design vue 清空upload組件圖片緩存的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue-cli結合Element-ui基于cropper.js封裝vue實現(xiàn)圖片裁剪組件功能

    vue-cli結合Element-ui基于cropper.js封裝vue實現(xiàn)圖片裁剪組件功能

    這篇文章主要介紹了vue-cli結合Element-ui基于cropper.js封裝vue實現(xiàn)圖片裁剪組件功能,本文圖文并茂給大家介紹的非常詳細,需要的朋友可以參考下
    2018-03-03
  • Vue模擬實現(xiàn)購物車結算功能

    Vue模擬實現(xiàn)購物車結算功能

    這篇文章主要為大家詳細介紹了Vue模擬實現(xiàn)購物車結算功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • vue實現(xiàn)動態(tài)面包屑導航

    vue實現(xiàn)動態(tài)面包屑導航

    這篇文章主要為大家詳細介紹了vue實現(xiàn)動態(tài)面包屑導航的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue 樣式綁定的實現(xiàn)方法

    Vue 樣式綁定的實現(xiàn)方法

    學習 Vue 的時候覺得樣式綁定很簡單,但是使用的時候總是容易搞暈自己。這篇文章主要介紹了Vue 樣式綁定的實現(xiàn)方法,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Vue項目查看當前使用的elementUI版本的方法

    Vue項目查看當前使用的elementUI版本的方法

    今天小編就為大家分享一篇Vue項目查看當前使用的elementUI版本的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 詳解element ui 添加自定義方法

    詳解element ui 添加自定義方法

    今天在修改 el-table 源碼過程中遇到一個頭大的問題,原本修改編譯后,將 element的子目錄lib下的文件復制到項目的響應目錄里就可以了,但是這次總出問題,下面小編給大家分享element ui 添加自定義方法,感興趣的朋友一起看看吧
    2024-02-02
  • vue 搭建后臺系統(tǒng)模塊化開發(fā)詳解

    vue 搭建后臺系統(tǒng)模塊化開發(fā)詳解

    這篇文章主要介紹了vue 搭建后臺系統(tǒng)模塊化開發(fā)詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05

最新評論