使用Vue綁定class和style樣式的幾種寫法總結(jié)
綁定class樣式
首先寫一個簡單的class樣式,和一個div容器方便調(diào)試 這些class樣式簡單說下用途:basic是最基本的樣式,我們可以配合另外一個class樣式使用,也就是happy,sad,normal這三個其中一個配合使用,hello1,hello2,hello3這三個樣式我們可以一起使用
<!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樣式

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

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

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

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

我們分析需求,其實不變的是basic,改變的是normal,所以我們可以把class樣式定義一個屬性,通過單擊事件去切換樣式
字符串寫法
特點:適用于樣式的類名不確定,需要動態(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樣式 --字符串寫法,適用于樣式的類名不確定,需要動態(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)在又有一個需求,就是點擊div隨機切換class樣式
我們可以把多個樣式定義成一個數(shù)組,隨機使用下標作為樣式
<!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樣式 --字符串寫法,適用于樣式的類名不確定,需要動態(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>
點擊div就會隨機切換圖片

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

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

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

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

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

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

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

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


總結(jié)
綁定樣式: 1 class樣式 寫法:class='xxx' xxx可以是字符串,對象,數(shù)組 字符串寫法適用于:類名不確定,要動態(tài)獲取 對象寫法適用于:要綁定多個樣式,個數(shù)不確定,名字也不確定 數(shù)組寫法適用于:要綁定多個樣式,個數(shù)確定,名字也確定,但不確定用不用 2 style樣式 :style="fontSize:xxx",其中xxx是動態(tài)值,fontSzie=font-size,如果只有一個單詞正常寫即可,如果多個需要使用駝峰命名 :style="[a,b]",其中a,b是樣式對象
以上就是使用Vue綁定class和style樣式的幾種寫法總結(jié)的詳細內(nèi)容,更多關(guān)于使用Vue綁定class和style的資料請關(guān)注腳本之家其它相關(guān)文章!
- vue3如何實現(xiàn)在style中使用響應(yīng)式變量
- Vue3如何利用xlsx、xlsx-js-style導(dǎo)出Excel表格使用(適合新手)
- Vue3中使用styled-components的實現(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標簽中使用變量(數(shù)據(jù))詳解
- 在VUE style中使用data中的變量的方法
- 在vue中:style 的使用方式匯總
相關(guān)文章
vue 實現(xiàn)左右拖拽元素并且不超過他的父元素的寬度
這篇文章主要介紹了vue 實現(xiàn)左右拖拽元素并且不超過他的父元素的寬度,需要的朋友可以參考下2018-11-11
Vue 2.0的數(shù)據(jù)依賴實現(xiàn)原理代碼簡析
本篇文章主要介紹了Vue 2.0的數(shù)據(jù)依賴實現(xiàn)原理代碼簡析,主要從初始化的數(shù)據(jù)層面上分析了Vue是如何管理依賴來到達數(shù)據(jù)的動態(tài)響應(yīng),有興趣的可以了解一下2017-07-07
vue中render函數(shù)和h函數(shù)以及jsx的使用方式
這篇文章主要介紹了vue中render函數(shù)和h函數(shù)以及jsx的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08

