vue 動(dòng)態(tài)樣式綁定 class/style的寫法小結(jié)
簡介:
綁定樣式:
1、class樣式
寫法:class="xxx" xxx可以是字符串,對(duì)象,數(shù)組。
字符串寫法適用于:類名不確定,要?jiǎng)討B(tài)獲取。
對(duì)象寫法適用于:要綁定多個(gè)樣式,個(gè)數(shù)確定,名字確定,但不確定用不用。
數(shù)組寫法適用于:要綁定多個(gè)樣式,個(gè)數(shù)不確定,名字不確定。
2、style樣式
:style="{fonSize : xxx}"其中xxx是動(dòng)態(tài)值,鍵值要用小駝峰命名法。
:style="[a,b]"其中a,b是樣式對(duì)象。
class樣式:
字符串寫法:類名不確定,要?jiǎng)討B(tài)獲取
通過v-bind動(dòng)態(tài)綁定樣式:
//樣式----------------------------------------- <style> .basic{ border: 5px solid rgb(77, 191, 252); //邊框 width: 400px; //寬 height: 100px; //高 } .style1{ border: 5px solid rgb(75, 139, 235); //邊框 background-color: rgb(20, 117, 122); //背景顏色 color: bisque; //字體顏色 } .style2{ border: 5px solid rgb(182, 219, 131); //邊框 background-color: rgb(222, 171, 203); //背景 color: rgb(16, 23, 29); //字體 border-radius: 10px; //圓角 } .change1{ background: -webkit-linear-gradient(left,rgb(182, 219, 131),rgb(241, 137, 201)); //漸變背景 } .change2{ font-size: larger; //大號(hào)字體 border-radius: 30px; //圓角 } </style>
<div id="gjs"> <h1>字符串方法</h1> <div class="basic" :class="style"> {{name}} <br> <button @click="changeStyle">改變樣式</button> </div> <hr> <h1>對(duì)象方法</h1> <div class="basic" :class="styleObj"> {{name}} <br> <button @click="changeStyle1">改變樣式</button> </div> <hr> <h1>數(shù)組方法</h1> <div class="basic" :class="styleArr"> {{name}} <br> <button @click="changeStyle2">減少樣式</button> <button @click="changeStyle3">增加樣式</button> </div> <h1>style方法1</h1> <div class="basic" :style="{fontSize : fsize+'px'}"> {{name}} </div> <h1>style方法2</h1> <div class="basic" :style="fontSize"> {{name}} </div> </div>
<body> //v-bind簡寫 : 將樣式style1綁定到div :class="style"------------------------------------------- <div id="gjs" class="basic" :class="style">{{name}}</div> <script> const vm = new Vue({ el: '#gjs', data:{ name: '搞技術(shù)', //定義類名-可以通過綁定事件更改為其他類名更改樣式----------------------------------- style: 'style1', }, }) </script> </body>
也可以添加按鈕綁定點(diǎn)擊事件改變參數(shù),點(diǎn)擊按鈕將style的參數(shù)變?yōu)閟tyle2,通過添加判斷實(shí)現(xiàn)來回改變樣式
const vm = new Vue({ el: '#gjs', data:{ name: '搞技術(shù)', style: '', }, methods: { changeStyle(){ if (this.style == 'style2') { this.style = 'style1' } else { this.style = 'style2' } }}
對(duì)象寫法:要綁定多個(gè)樣式,個(gè)數(shù)確定,名字確定,但不確定用不用。
通過點(diǎn)擊按鈕或者控制臺(tái)修改對(duì)象屬性的值來控制樣式的變化
<script> const vm = new Vue({ el: '#gjs', data:{ name: '搞技術(shù)', styleObj:{ change1:false, change2:false, } }, methods: { changeStyle1(){ if (this.styleObj.change1 == true) { this.styleObj.change1 = false this.styleObj.change2 = false } else { this.styleObj.change1 = true this.styleObj.change2 = true } } }) </script>
數(shù)組寫法:要綁定多個(gè)樣式,個(gè)數(shù)不確定,名字不確定。
<script> const vm = new Vue({ el: '#gjs', data:{ name: '搞技術(shù)', styleArr:['change1','change2'], }, methods: { changeStyle2(){ this.styleArr.shift() }, changeStyle3(){ this.styleArr.unshift('change1') } } }) </script>
通過綁定事件對(duì)數(shù)組中的值進(jìn)行修改,點(diǎn)擊減少則移除數(shù)組中的值,點(diǎn)擊添加則給數(shù)組中添加值來控制樣式的變化
所以背景顏色消失
style方法 (鍵值要用小駝峰命名法)
// <h1>style方法1</h1> <div class="basic" :style="{fontSize : fsize+'px'}"> //這里的fontSize小駝峰 {{name}} </div> <h1>style方法2</h1> <div class="basic" :style="fontSize"> {{name}} </div>
<script> const vm = new Vue({ el: '#gjs', data:{ name: '搞技術(shù)', fsize:40, //方法1 fontSize:{ fontSize:'40px', }, //方法2這里的fontSize小駝峰 } }) </script>
到此這篇關(guān)于vue 動(dòng)態(tài)樣式綁定 class/style的寫法小結(jié)的文章就介紹到這了,更多相關(guān)vue 動(dòng)態(tài)樣式綁定 class和style內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue實(shí)現(xiàn)一個(gè)帶有緩存功能的Tab頁簽功能
在現(xiàn)代?Web?應(yīng)用中,Tab?頁簽功能是非常常見的一種交互模式,它可以幫助用戶在不同的視圖間快速切換,而不會(huì)丟失當(dāng)前視圖的狀態(tài),本文將介紹如何在?Vue?項(xiàng)目中實(shí)現(xiàn)一個(gè)帶有緩存功能的?Tab?頁簽功能,需要的朋友可以參考下2024-08-08Vue使用正則校驗(yàn)文本框?yàn)檎麛?shù)
這篇文章主要介紹了Vue使用正則校驗(yàn)文本框?yàn)檎麛?shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10VUE異步更新DOM - 用$nextTick解決DOM視圖的問題
這篇文章主要介紹了VUE異步更新DOM - 用$nextTick解決DOM視圖的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11vue3實(shí)現(xiàn)多層級(jí)列表的項(xiàng)目實(shí)踐
本文主要介紹了vue3實(shí)現(xiàn)多層級(jí)列表的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Element-UI 多個(gè)el-upload組件自定義上傳不用上傳url并且攜帶自定義傳參(文件序號(hào))
有多個(gè)upload組件,每個(gè)都需要單獨(dú)上傳獲取文件(JS File類型),不需要action上傳到指定url,自定義上傳動(dòng)作和http操作,下面通過本文給大家分享Element-UI 多個(gè)el-upload組件自定義上傳不用上傳url并且攜帶自定義傳參(文件序號(hào)),感興趣的朋友一起看看吧2024-06-06使用Vue3新特性構(gòu)建動(dòng)態(tài)表單的方法詳解
傳統(tǒng)的表單開發(fā)通常需要編寫大量的重復(fù)代碼,例如處理用戶輸入、驗(yàn)證數(shù)據(jù)、更新 UI 等等,為了簡化開發(fā),我們可以借助 Vue 3 的新特性,例如組合式 API 和 ref 對(duì)象,所以本文我們將一起學(xué)習(xí)如何使用 Vue 3 的新特性構(gòu)建一個(gè)更加靈活、可擴(kuò)展的動(dòng)態(tài)表單2024-06-06vue項(xiàng)目純前端實(shí)現(xiàn)的模板打印功能示例代碼
在Vue項(xiàng)目中,通過使用vue-print-nb插件,可以實(shí)現(xiàn)頁面的打印功能,這篇文章主要介紹了vue項(xiàng)目純前端實(shí)現(xiàn)的模板打印功能的相關(guān)資料,需要的朋友可以參考下2024-10-10vue.js動(dòng)態(tài)修改background-image問題
這篇文章主要介紹了vue.js動(dòng)態(tài)修改background-image問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08