Vue的樣式綁定詳解
1. 樣式綁定(class、style)
1.1 綁定class
固定的類名就正常的寫,需要?jiǎng)討B(tài)綁定的類名就v-bind去綁定它
例如::class= "mood"
下面舉一些適用的場(chǎng)景:
1.綁定class樣式—字符串寫法,適用于:樣式的類名不確定,需要?jiǎng)討B(tài)指定
2.綁定class樣式 — 數(shù)組寫法使用的場(chǎng)景 :綁定的樣式的個(gè)數(shù)不確定,名字也不確定
3.綁定class樣式 — 對(duì)象寫法使用的場(chǎng)景:綁定的個(gè)數(shù)確定的,名字也確定,不確定的是用不用該類名
<body> <style> .basic { width: 100px; height: 100px; border: 2px solid black; } .happy { width: 100px; height: 100px; border: 2px solid orange; background-color: palevioletred; } .sad { width: 100px; height: 100px; border: 2px solid black; background-color: silver; } .normal { width: 100px; height: 100px; border: 2px solid greenyellow; background-color: sandybrown; } .outline { border-radius: 20%; } .color { color: skyblue; } .size { font-family: '微軟雅黑'; font-size: 20px; font-weight: bold; } </style> <div id="root"> <!-- 需求1 :點(diǎn)擊div1 隨機(jī)切換mood 綁定class樣式 --- 字符串寫法 1. 固定的class類名就正常寫,需要?jiǎng)討B(tài)指定的class類名就 :class="xxx" 寫到這里面 2. 使用的場(chǎng)景 : 樣式的類名不確定,需要去動(dòng)態(tài)指定 --> <div class="div1 basic" :class="mood" @click="random">{{name}}</div> <!-- 需求2 : 點(diǎn)擊div2 添加類,或者刪除類 綁定class樣式 --- 數(shù)組寫法 1. 使用的場(chǎng)景 :綁定的樣式的個(gè)數(shù)不確定,名字也不確定 2. shift() :移除數(shù)組中第一個(gè)數(shù)據(jù), push("xxx");在末尾添加一個(gè)新的數(shù)據(jù) --> <div class="div2 basic" :class="classArr" @click = "remove">{{name}}</div> <!-- 注意點(diǎn):在vue操作下 " " 里面的寫的字符串是表達(dá)式," '' " 里面寫的字符串就是值 --> <!-- <div class="div2 basic" :class="['outline','color','size']"></div> --> <!-- 需求3 :在outline和color之間進(jìn)行切換 綁定class樣式 --- 對(duì)象寫法 使用的場(chǎng)景:綁定的個(gè)數(shù)確定的,名字也確定,不確定的是用不用該類名 --> <div class="div3 basic" :class="classObj" @click="change">{{name}}</div> </div> <script> Vue.config.productionTip = false let vm = new Vue({ el: '#root', data: { name: "Hello,Vue!", mood: "normal", classArr:['outline','color','size'], classObj:{ outline:true, color:true } }, methods: { random() { let arr = ["happy", "sad", "normal"] // Math.floor : 表示向下取整, Math.random():取值是0-1,1是取不到的 this.mood = arr[Math.floor(Math.random() * 3)] }, remove(){ this.classArr.shift() }, change(){ vm.classObj.color = !vm.classObj.color vm.classObj.outline = !vm.classObj.outline } } }) </script>
1.2 綁定style
例如::style = "styleobj"
<div id="root" :style="styleobj"> Hello,{{name}}! </div> <script> Vue.config.productionTip = false let vm = new Vue({ el: '#root', data: { name:"Vue", styleobj:{ fontSize: 50 + "px", color: "red", border:1+"px"+" "+"solid"+" "+"black" } } }) </script>
總結(jié)
本篇文章就到這里了,介紹了class和style如何綁定,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
vue3 座位選座矩陣布局的實(shí)現(xiàn)方法(可點(diǎn)擊選中拖拽調(diào)換位置)
由于公司項(xiàng)目需求需要做一個(gè)線上設(shè)置考場(chǎng)相關(guān)的座位布局用于給學(xué)生考機(jī)排號(hào)考試,實(shí)現(xiàn)教室考場(chǎng)座位布局的矩陣布局,可點(diǎn)擊選中標(biāo)記是否有座無座拖拽調(diào)換位置橫向縱向排列,本文給大家分享實(shí)現(xiàn)代碼,一起看看吧2023-11-11詳解vue中$nextTick和$forceUpdate的用法
這篇文章主要介紹了詳解vue中$nextTick和$forceUpdate的用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12如何在vue3.0+中使用tinymce及實(shí)現(xiàn)多圖上傳文件上傳公式編輯功能
本文給大家分享tinymce編輯器如何在vue3.0+中使用tinymce及實(shí)現(xiàn)多圖上傳文件上傳公式編輯功能,tinymce安裝方法文中也給大家詳細(xì)介紹了,對(duì)vue tinymce實(shí)現(xiàn)上傳公式編輯相關(guān)知識(shí)感興趣的朋友跟隨小編一起學(xué)習(xí)下吧2021-05-05vue報(bào)錯(cuò)之exports is not defined問題的解決
這篇文章主要介紹了vue報(bào)錯(cuò)之exports is not defined問題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07vue2中Print.js的使用超詳細(xì)講解(pdf、html、json、image)
項(xiàng)目中有用到打印功能,網(wǎng)上就找了print.js,下面這篇文章主要給大家介紹了關(guān)于vue2中Print.js使用(pdf、html、json、image)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03vue使用自定義事件的表單輸入組件用法詳解【日期組件與貨幣組件】
這篇文章主要介紹了vue使用自定義事件的表單輸入組件用法,結(jié)合實(shí)例形式詳細(xì)分析了vue.js日期組件與貨幣組件相關(guān)操作技巧及注意事項(xiàng),需要的朋友可以參考下2020-06-06