VUE中如何動(dòng)態(tài)綁定類名和樣式
VUE動(dòng)態(tài)綁定類名和樣式
1、使用v-bind屬性綁定class和style屬性
2、動(dòng)態(tài)類名兩種方式:
- 對(duì)象形式:給對(duì)象屬性賦boolean類型值
- 數(shù)組配合三元運(yùn)算符,通過(guò)改變條件的真假實(shí)現(xiàn)類名的添加和刪除
<template>
? <div>
? ? <div :class="classObj">動(dòng)態(tài)綁定對(duì)象</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)樣式的兩種方式
- 對(duì)象形式
- 數(shù)組(包含樣式對(duì)象)形式:可以同時(shí)添加多個(gè)樣式對(duì)象
<template>
? <div>
? ? <div :style="styleObj1">對(duì)象形式</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
除了綁定值,其他的屬性名的值要用引號(hào)括起來(lái),比如backgroundColor:'#00a2ff'而不是 backgroundColor:#00a2ff
1.1、對(duì)象
<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對(duì)象
<div :style="styleObject"></div>
<script>
? ? data() {
? ? ? ? return{
? ? ? ? ? styleObject: {
? ? ? ? ? ? color: 'red',
? ? ? ? ? ? fontSize: '14px'
? ? ? ? ? } ?
? ? ? ? }
? ? }
</scrip>2、動(dòng)態(tài)class寫法
2.1、對(duì)象方法
<!-- 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、第一種:用逗號(hào)隔開(kāi)
<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需要加上單引號(hào),否則不能正確渲染
: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ù)組對(duì)象結(jié)合動(dòng)態(tài)判斷
//前面這個(gè)active在對(duì)象里面可以不加單引號(hào),后面這個(gè)sort要加單引號(hào)
: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-08
Vue + AnimeJS實(shí)現(xiàn)3d輪播圖的詳細(xì)代碼
輪播圖在開(kāi)發(fā)中是經(jīng)常用到的,3D輪播圖是其中最常用的一種,所以在這篇文章中將給大家介紹Vue + AnimeJS實(shí)現(xiàn)3d輪播圖,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下2024-01-01
vant-ui框架的一個(gè)bug(解決切換后onload不觸發(fā))
這篇文章主要介紹了vant-ui框架的一個(gè)bug(解決切換后onload不觸發(fā)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
vue3鼠標(biāo)經(jīng)過(guò)顯示按鈕功能的實(shí)現(xiàn)
本篇文章介紹了如何使用 Vue3 實(shí)現(xiàn)一個(gè)鼠標(biāo)經(jīng)過(guò)顯示按鈕的效果,我們使用了 Vue3 的 Composition API 來(lái)創(chuàng)建響應(yīng)式的數(shù)據(jù),并使用了?@mouseover?和?@mouseleave?事件來(lái)監(jiān)聽(tīng)鼠標(biāo)的移入和移出事件,感興趣的朋友一起看看吧2024-04-04
vue實(shí)現(xiàn)靜態(tài)頁(yè)面點(diǎn)贊和取消點(diǎn)贊功能
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)靜態(tài)頁(yè)面點(diǎn)贊和取消點(diǎn)贊的功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
基于vue-resource jsonp跨域問(wèn)題的解決方法
下面小編就為大家分享一篇基于vue-resource jsonp跨域問(wèn)題的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
關(guān)于echarts?清空上一次加載的數(shù)據(jù)問(wèn)題
這篇文章主要介紹了關(guān)于echarts?清空上一次加載的數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10

