VUE中如何動(dòng)態(tài)綁定類名和樣式
VUE動(dòng)態(tài)綁定類名和樣式
1、使用v-bind屬性綁定class和style屬性
2、動(dòng)態(tài)類名兩種方式:
- 對象形式:給對象屬性賦boolean類型值
- 數(shù)組配合三元運(yùn)算符,通過改變條件的真假實(shí)現(xiàn)類名的添加和刪除
<template> ? <div> ? ? <div :class="classObj">動(dòng)態(tài)綁定對象</div> ? ? <div :class="['namebox', activeStatus ? 'activeNamebox' : '']"> ? ? ? 動(dòng)態(tài)綁定數(shù)組 ? ? </div> ? </div> </template> <script> export default { ? data() { ? ? return { ? ? ? classObj: { ? ? ? ? namebox: true, ? ? ? ? activeNamebox: false ? ? ? }, ? ? ? activeStatus: false ? ? } ? } } </script> <style> .namebox { ? color: #777; } .activeNamebox { ? background-color: aquamarine; } </style>
3、動(dòng)態(tài)樣式的兩種方式
- 對象形式
- 數(shù)組(包含樣式對象)形式:可以同時(shí)添加多個(gè)樣式對象
<template> ? <div> ? ? <div :style="styleObj1">對象形式</div> ? ? <div :style="[styleObj1, styleObj2]">數(shù)組形式</div> ? </div> </template> <script> export default { ? data() { ? ? return { ? ? ? styleObj1: { ? ? ? ? color: '#eee' ? ? ? }, ? ? ? styleObj2: { ? ? ? ? textAlign: center ? ? ? } ? ? } ? } } </script> <style></style>
動(dòng)態(tài)綁定樣式——動(dòng)態(tài)綁定style寫法 & 動(dòng)態(tài)class寫法
1、動(dòng)態(tài)綁定style寫法
注意:
凡是有-的style屬性名都要變成駝峰式,比如font-size要變成fontSize
除了綁定值,其他的屬性名的值要用引號括起來,比如backgroundColor:'#00a2ff'而不是 backgroundColor:#00a2ff
1.1、對象
<div :style="{ color: activeColor, fontSize: fontSize + 'px' }"></div> <div :style="{color:(index == 1 ? conFontColor:'#000')}"></div>
1.2、數(shù)組
<div :style="[baseStyles, overridingStyles]"></div> <div :style="[{color:(index == 1 ? conFontColor:'#000')},{fontSize:'18px'}]"></div>
1.3、三元運(yùn)算符
<div :style="{color:(index == 1 ? conFontColor:'#000')}"></div> <div :style="[{color:(index == 1 ? conFontColor:'#000')},{fontSize:'18px'}]"></div> <div :style="item.layerName === activeLayerName?'font-weight:700' : 'font-weight:400'"></div> <!-- 寫法一 --> <div :style="[{float: id === '12' ? 'left:'right}]"></div> <!-- 寫法二 --> <div :style="float: nameList.length === 20 ? 'height:64px' : 'height:32px' "></div> <!-- 寫法三 --> <div :style="{border:( nameId ===item.id ?'2px solid #4C78FF': 'red')}"></div>
1.4、綁定data對象
<div :style="styleObject"></div> <script> ? ? data() { ? ? ? ? return{ ? ? ? ? ? styleObject: { ? ? ? ? ? ? color: 'red', ? ? ? ? ? ? fontSize: '14px' ? ? ? ? ? } ? ? ? ? ? } ? ? } </scrip>
2、動(dòng)態(tài)class寫法
2.1、對象方法
<!-- isActive —— true/false --> <div :class="{ 'active': isActive ?}">{{name}}</div>?
2.2、判斷是否綁定一個(gè)active
<div :class="{'active' : isActive == -2}" ?>{{name}}</div> <div :class="{'active' : isActive == item.nameId}" ?>{{item.name}}</div>
2.3、綁定并判斷多個(gè)
2.31、第一種:用逗號隔開
<div :class="{ 'active': isActive, 'user': isUser }"></div>
2.32、放在data里面
<div :class="classObject">{{name}}</div> <script> data() { ? return { ? ? classObject:{ active: true, user:false } ? } } </script>
2.33、使用computed屬性
<div :class="classObject">{{name}}</div> <script> data() { ? return { ? ? isActive: true, ? ? isUser: false ? } }, computed: { ? classObject: function () { ? ? return { ? ? ? active: this.isActive, ? ? ? user:this.isUser ? ? } ? } } </script>
2.4、數(shù)組方法
2.41、單純數(shù)組
<div :class="[isActive,isUser]">{{name}}</div> <script> data() { ? return{ ? ? isActive:'active', ? ? isUser:'user' ?} } </script>
2.42、數(shù)組與三元運(yùn)算符結(jié)合判斷選擇需要的class
注意:三元運(yùn)算符后面的“:”兩邊的class需要加上單引號,否則不能正確渲染
:class="[isActive?‘a(chǎn)ctive':'']" 或者 :class="[isActive1?‘a(chǎn)ctive':'']" 或者 :class="[isActiveindex?‘a(chǎn)ctive':'']" 或者 :class="[isActive==index?‘a(chǎn)ctive':‘otherActiveClass']"
2.43、數(shù)組對象結(jié)合動(dòng)態(tài)判斷
//前面這個(gè)active在對象里面可以不加單引號,后面這個(gè)sort要加單引號 :class="[{ active: isActive }, ‘sort']" 或者 :class="[{ active: isActive1 }, ‘sort']" 或者 :class="[{ active: isActiveindex }, ‘sort']"
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue+ElementUI創(chuàng)建一個(gè)帶有進(jìn)度顯示的文件下載和打包組件功能
如何使用 Vue 創(chuàng)建一個(gè)帶有進(jìn)度顯示和打包功能的文件下載組件,我們探討了如何導(dǎo)入必要的包,構(gòu)建組件的基礎(chǔ)結(jié)構(gòu),實(shí)現(xiàn)文件下載與進(jìn)度顯示,以及如何將文件打包為 ZIP 格式供用戶下載2024-08-08Vue + AnimeJS實(shí)現(xiàn)3d輪播圖的詳細(xì)代碼
輪播圖在開發(fā)中是經(jīng)常用到的,3D輪播圖是其中最常用的一種,所以在這篇文章中將給大家介紹Vue + AnimeJS實(shí)現(xiàn)3d輪播圖,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下2024-01-01vant-ui框架的一個(gè)bug(解決切換后onload不觸發(fā))
這篇文章主要介紹了vant-ui框架的一個(gè)bug(解決切換后onload不觸發(fā)),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11vue3鼠標(biāo)經(jīng)過顯示按鈕功能的實(shí)現(xiàn)
本篇文章介紹了如何使用 Vue3 實(shí)現(xiàn)一個(gè)鼠標(biāo)經(jīng)過顯示按鈕的效果,我們使用了 Vue3 的 Composition API 來創(chuàng)建響應(yīng)式的數(shù)據(jù),并使用了?@mouseover?和?@mouseleave?事件來監(jiān)聽鼠標(biāo)的移入和移出事件,感興趣的朋友一起看看吧2024-04-04vue實(shí)現(xiàn)靜態(tài)頁面點(diǎn)贊和取消點(diǎn)贊功能
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)靜態(tài)頁面點(diǎn)贊和取消點(diǎn)贊的功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02關(guān)于echarts?清空上一次加載的數(shù)據(jù)問題
這篇文章主要介紹了關(guān)于echarts?清空上一次加載的數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10