Vue v-bind動(dòng)態(tài)綁定class實(shí)例方法
現(xiàn)在很多網(wǎng)站,都是希望動(dòng)態(tài)切換class,更換css樣式。下面我們使用Vue的v-bind綁定class
v-bind動(dòng)態(tài)綁定class
對(duì)象語(yǔ)法綁定(常用)
red和size的值為true就在class顯示red和size,false就不顯示。下面有兩種寫法:
<style> .red{ color: red; } .size{ font-size: 20px; } </style> <div id="app"> <ul> <!--寫法一--> <li :class="{red:isColor,size:isSize}">{{list}}</li> <!--寫法二,v-bind綁定函數(shù)必須加上()--> <li :class="listData()">{{list}}</li> </ul> <!--點(diǎn)擊這個(gè),red的true變false,反之red的false變true--> <button @click="reverse">反選</button> </div> <script> const app=new Vue({ el:"#app", data:{ list:"Vue", isColor:true, isSize:true }, methods:{ reverse:function () { return this.isColor = !this.isColor; }, //寫法二 listData:function () { return {red:this.isColor,size:this.isSize}; } } }) </script>
注意:v-bind:class指令可以與普通的class特性共存;對(duì)應(yīng)的語(yǔ)法糖:“:class”等于v-bind:class
數(shù)組語(yǔ)法綁定
數(shù)組語(yǔ)法不常用,主要是它不靈活:
<div id="app"> <ul> <!--這里綁定data的變量--> <li :class="[acli,bcli]">{{list}}</li> </ul> </div> const app=new Vue({ el:"#app", data:{ list:"Vue", acli:"aaa", bcli:"bbb", }, })
字符串綁定更數(shù)組語(yǔ)法綁定差不多,不常用
<div id="demo"> <span :class="classA"></span> </div> let vm = new Vue({ el:"#demo", data:{ classA:"string" } })
綜合的寫法
<div id="demo"> <span :class="[one,{‘classA‘:classa,‘classB‘:classb}]"></span> </div> var vm = new Vue({ el:"#demo", data:{ one:"string", classa:true, classb:false } })
v-bind動(dòng)態(tài)綁定style
對(duì)象語(yǔ)法綁定(常用)
v-bind:style 的對(duì)象語(yǔ)法十分直觀——看著非常像 CSS,但其實(shí)是一個(gè) JavaScript 對(duì)象。
<div id="app"> <ul> <!--{key(屬性名):value(屬性值)}--> <li :style="{color:color,fontSize:size+'px'}">{{list}}</li> <!--如果你想屬性值原樣數(shù)組,就必須加上單引號(hào)--> <li :style="{color:'red'}">{{list}}</li> </ul> </div> const app=new Vue({ el:"#app", data:{ list:"Vue", color:"red", size:50 }, })
注:對(duì)象語(yǔ)法的value(屬性值),如果加上單引號(hào)就原樣輸出,不加就輸出data的變量值
數(shù)組語(yǔ)法綁定
v-bind:style 的數(shù)組語(yǔ)法可以將多個(gè)樣式對(duì)象應(yīng)用到同一個(gè)元素上:
<div v-bind:style="[baseStyles,overridingStyles]">{{list}}</div> const app=new Vue({ el:"#app", data:{ list:"Vue", baseStyles:{fontSize:"50px",color:"red"}, overridingStyles:{"margin-top":"50px"} }, })
以上就是本次介紹的全部相關(guān)知識(shí)點(diǎn),感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。
相關(guān)文章
Vue實(shí)現(xiàn)手機(jī)掃描二維碼預(yù)覽頁(yè)面效果
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)手機(jī)掃描二維碼預(yù)覽頁(yè)面效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03vue計(jì)算屬性無(wú)法監(jiān)聽到數(shù)組內(nèi)部變化的解決方案
今天小編就為大家分享一篇vue計(jì)算屬性無(wú)法監(jiān)聽到數(shù)組內(nèi)部變化的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11Vue實(shí)現(xiàn)遠(yuǎn)程獲取路由與頁(yè)面刷新導(dǎo)致404錯(cuò)誤的解決
這篇文章主要介紹了Vue實(shí)現(xiàn)遠(yuǎn)程獲取路由與頁(yè)面刷新導(dǎo)致404錯(cuò)誤的解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01vue3+elementplus基于el-table-v2封裝公用table組件詳細(xì)代碼
在日常開發(fā)后端管理系統(tǒng)項(xiàng)目中,用于展示數(shù)據(jù)多會(huì)用表格進(jìn)行展示,下面這篇文章主要給大家介紹了關(guān)于vue3+elementplus基于el-table-v2封裝公用table組件的相關(guān)資料,需要的朋友可以參考下2023-12-12