使用Vue綁定class和style樣式的幾種寫法總結(jié)
綁定class樣式
首先寫一個(gè)簡單的class樣式,和一個(gè)div容器方便調(diào)試 這些class樣式簡單說下用途:basic是最基本的樣式,我們可以配合另外一個(gè)class樣式使用,也就是happy,sad,normal這三個(gè)其中一個(gè)配合使用,hello1,hello2,hello3這三個(gè)樣式我們可以一起使用
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>初始vue</title>
<style>
.basic{
width: 300px;
height: 100px;
border: 1px solid black;
}
.happy{
border:4px solid red;
background-color: rgba(255, 255, 0, 0.644);
background: linear-gradient(30deg,yellow,pink,orange,yellow);
}
.sad{
border:4px solid cyan;
background-color: rgba(12, 23, 0, 0.644);
background: linear-gradient(30deg,rgb(178, 60, 5),rgb(168, 72, 88),rgb(155, 47, 146),rgb(114, 40, 40));
}
.normal{
border:4px solid rgba(12, 107, 107, 0.608);
background-color: rgba(12, 23, 0, 0.644);
background: linear-gradient(30deg,rgb(178, 60, 5),rgb(121, 142, 38),rgb(157, 67, 150),rgb(239, 169, 169));
}
.hello1{
background-color: orchid
}
.hello2{
font-size: 40px;
}
.hello3{
color:red
}
</style>
<!-- 引入vue.js -->
<script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<div id="root">
<div>test</div>
</div>
<script type="text/javascript">
</script>
</body>
</html>在頁面上給元素增加class樣式

不同的樣式配置效果也是不同的

三個(gè)hello樣式一起使用,效果就更豐富

由于basic樣式是最基本的,所以我們可以直接把它寫上,完善下代碼

現(xiàn)在提出需求:這個(gè)div有兩個(gè)樣式方案,一開始div的class樣式是basic和normal,如果點(diǎn)擊div則換成basic和happy
錯(cuò)誤演示:使用demo操作,如果我們親自使用demo獲取對象,那么就違背了vue的設(shè)計(jì),雖然可以實(shí)現(xiàn)效果,但是這種方式是不可取的

我們分析需求,其實(shí)不變的是basic,改變的是normal,所以我們可以把class樣式定義一個(gè)屬性,通過單擊事件去切換樣式
字符串寫法
特點(diǎn):適用于樣式的類名不確定,需要?jiǎng)討B(tài)指定
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>初始vue</title>
<style>
.basic{
width: 300px;
height: 100px;
border: 1px solid black;
}
.happy{
border:4px solid red;
background-color: rgba(255, 255, 0, 0.644);
background: linear-gradient(30deg,yellow,pink,orange,yellow);
}
.sad{
border:4px solid cyan;
background-color: rgba(12, 23, 0, 0.644);
background: linear-gradient(30deg,rgb(178, 60, 5),rgb(168, 72, 88),rgb(155, 47, 146),rgb(114, 40, 40));
}
.normal{
border:4px solid rgba(12, 107, 107, 0.608);
background-color: rgba(12, 23, 0, 0.644);
background: linear-gradient(30deg,rgb(178, 60, 5),rgb(121, 142, 38),rgb(157, 67, 150),rgb(239, 169, 169));
}
.hello1{
background-color: orchid
}
.hello2{
font-size: 40px;
}
.hello3{
color:red
}
</style>
<!-- 引入vue.js -->
<script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<div id="root">
<!-- 綁定class樣式 --字符串寫法,適用于樣式的類名不確定,需要?jiǎng)討B(tài)指定 -->
<div class="basic " :class="mood" @click="changeMood">{{name}}</div>
</div>
</body>
<script type="text/javascript">
new Vue({
el:'#root',
data:{
name:'vue',
mood:'normal'
},
methods: {
changeMood(){
// 獲取div改變class樣式
this.mood='happy'
}
},
})
</script>
</html>
現(xiàn)在又有一個(gè)需求,就是點(diǎn)擊div隨機(jī)切換class樣式
我們可以把多個(gè)樣式定義成一個(gè)數(shù)組,隨機(jī)使用下標(biāo)作為樣式
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>初始vue</title>
<style>
.basic{
width: 300px;
height: 100px;
border: 1px solid black;
}
.happy{
border:4px solid red;
background-color: rgba(255, 255, 0, 0.644);
background: linear-gradient(30deg,yellow,pink,orange,yellow);
}
.sad{
border:4px solid cyan;
background-color: rgba(12, 23, 0, 0.644);
background: linear-gradient(30deg,rgb(178, 60, 5),rgb(168, 72, 88),rgb(155, 47, 146),rgb(114, 40, 40));
}
.normal{
border:4px solid rgba(12, 107, 107, 0.608);
background-color: rgba(12, 23, 0, 0.644);
background: linear-gradient(30deg,rgb(178, 60, 5),rgb(121, 142, 38),rgb(157, 67, 150),rgb(239, 169, 169));
}
.hello1{
background-color: orchid
}
.hello2{
font-size: 40px;
}
.hello3{
color:red
}
</style>
<!-- 引入vue.js -->
<script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
<div id="root">
<!-- 綁定class樣式 --字符串寫法,適用于樣式的類名不確定,需要?jiǎng)討B(tài)指定 -->
<div class="basic " :class="mood" @click="changeMood">{{name}}</div>
</div>
</body>
<script type="text/javascript">
new Vue({
el:'#root',
data:{
name:'vue',
mood:'normal'
},
methods: {
changeMood(){
// 獲取div改變class樣式
const arr=['happy','sad','normal']
const index=Math.floor(Math.random()*3)
this.mood=arr[index]
}
},
})
</script>
</html>
點(diǎn)擊div就會隨機(jī)切換圖片

數(shù)組寫法
特點(diǎn):適用于要綁定的樣式個(gè)數(shù)不確定,名字也不確定 現(xiàn)在又有一個(gè)需求,新增一個(gè)div,基本樣式還是basic,這個(gè)div樣式可能有多個(gè) 可以把多個(gè)class定義成一個(gè)數(shù)組

可以通過vue管理工具切換動態(tài)刪除新增樣式

對象寫法
特點(diǎn):適用于要綁定的樣式個(gè)數(shù)確定,名字也確定,但是用動態(tài)決定用不用 又提出一個(gè)新的需求:新增一個(gè)div,這個(gè)div可以使用的樣式可以是同時(shí)hello1,hello2,也可以是只有hello1,或者只有hello2,或者兩個(gè)樣式一個(gè)也沒有 這種情況我們可以把需要用到的樣式定義成一個(gè)對象

我們可以點(diǎn)擊復(fù)選框切換屬性或者手動輸入切換

綁定style樣式
樣式的綁定不僅僅有class選擇器,還有行內(nèi)style樣式

<div class="basic" :style="{fontSize:fSize+'px'}">{{name}}</div><br><br>
但是這樣太單調(diào)了,通常我們是把多個(gè)是style樣式放在一個(gè)對象里面
style的對象寫法
注意:如果key是一個(gè)單詞就正常寫即可,如果是多個(gè)單詞,需要遵循駝峰寫法。比如font-size要寫成fontSize

由vue管理的屬性,可以自由切換值

style的數(shù)組寫法
style也可以使用數(shù)組寫法,只是這種寫法寫的比較少


總結(jié)
綁定樣式: 1 class樣式 寫法:class='xxx' xxx可以是字符串,對象,數(shù)組 字符串寫法適用于:類名不確定,要?jiǎng)討B(tài)獲取 對象寫法適用于:要綁定多個(gè)樣式,個(gè)數(shù)不確定,名字也不確定 數(shù)組寫法適用于:要綁定多個(gè)樣式,個(gè)數(shù)確定,名字也確定,但不確定用不用 2 style樣式 :style="fontSize:xxx",其中xxx是動態(tài)值,fontSzie=font-size,如果只有一個(gè)單詞正常寫即可,如果多個(gè)需要使用駝峰命名 :style="[a,b]",其中a,b是樣式對象
以上就是使用Vue綁定class和style樣式的幾種寫法總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于使用Vue綁定class和style的資料請關(guān)注腳本之家其它相關(guān)文章!
- vue3如何實(shí)現(xiàn)在style中使用響應(yīng)式變量
- Vue3如何利用xlsx、xlsx-js-style導(dǎo)出Excel表格使用(適合新手)
- Vue3中使用styled-components的實(shí)現(xiàn)
- 在 Vue3 中如何使用 styled-components
- Vue使用xlsx和xlsx-style導(dǎo)出表格出現(xiàn)部分樣式缺失的問題解決
- vue使用xlsx庫和xlsx-style庫導(dǎo)入導(dǎo)出excel、設(shè)置單元格背景色、文字居中、合并單元格、設(shè)置列寬
- vue如何在style標(biāo)簽中使用變量(數(shù)據(jù))詳解
- 在VUE style中使用data中的變量的方法
- 在vue中:style 的使用方式匯總
相關(guān)文章
vue項(xiàng)目打包清除console.log的四種方法總結(jié)
大家在項(xiàng)目開發(fā)的時(shí)候,需要看看一些后端接口返回的結(jié)果,會多次使用console.log項(xiàng)目開發(fā)完成打包的時(shí)候,發(fā)現(xiàn)控制臺一堆的console.log,非常頭疼,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目打包清除console.log的四種方法,需要的朋友可以參考下2023-04-04
vue3中g(shù)etCurrentInstance獲取組件踩坑及解決
這篇文章主要介紹了vue3中g(shù)etCurrentInstance獲取組件踩坑及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-06-06
詳解vue中在父組件點(diǎn)擊按鈕觸發(fā)子組件的事件
這篇文章主要介紹了詳解vue中在父組件點(diǎn)擊按鈕觸發(fā)子組件的事件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
vue項(xiàng)目base64加解密使用方式以及解密亂碼
這篇文章主要介紹了vue項(xiàng)目base64加解密使用方式以及解密亂碼問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
一文詳解vue3項(xiàng)目實(shí)戰(zhàn)中的接口調(diào)用
在企業(yè)開發(fā)過程中,往往有著明確的前后端的分工,前端負(fù)責(zé)接收、使用接口,后端負(fù)責(zé)編寫、處理接口,下面這篇文章主要給大家介紹了關(guān)于vue3項(xiàng)目實(shí)戰(zhàn)中的接口調(diào)用的相關(guān)資料,需要的朋友可以參考下2022-12-12
Vue引入并使用Element組件庫的兩種方式小結(jié)
本文主要介紹了Vue引入并使用Element組件庫的兩種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
vue+el-table實(shí)現(xiàn)合并單元格
這篇文章主要為大家詳細(xì)介紹了vue+el-table實(shí)現(xiàn)合并單元格,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09

