Vue的樣式綁定詳解
1. 樣式綁定(class、style)
1.1 綁定class
固定的類名就正常的寫(xiě),需要?jiǎng)討B(tài)綁定的類名就v-bind去綁定它
例如::class= "mood"
下面舉一些適用的場(chǎng)景:
1.綁定class樣式—字符串寫(xiě)法,適用于:樣式的類名不確定,需要?jiǎng)討B(tài)指定
2.綁定class樣式 — 數(shù)組寫(xiě)法使用的場(chǎng)景 :綁定的樣式的個(gè)數(shù)不確定,名字也不確定
3.綁定class樣式 — 對(duì)象寫(xiě)法使用的場(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樣式 --- 字符串寫(xiě)法
1. 固定的class類名就正常寫(xiě),需要?jiǎng)討B(tài)指定的class類名就 :class="xxx" 寫(xiě)到這里面
2. 使用的場(chǎng)景 : 樣式的類名不確定,需要去動(dòng)態(tài)指定
-->
<div class="div1 basic" :class="mood" @click="random">{{name}}</div>
<!--
需求2 : 點(diǎn)擊div2 添加類,或者刪除類
綁定class樣式 --- 數(shù)組寫(xiě)法
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操作下 " " 里面的寫(xiě)的字符串是表達(dá)式," '' " 里面寫(xiě)的字符串就是值 -->
<!-- <div class="div2 basic" :class="['outline','color','size']"></div> -->
<!--
需求3 :在outline和color之間進(jìn)行切換
綁定class樣式 --- 對(duì)象寫(xiě)法
使用的場(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如何綁定,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
關(guān)于在Vue中import和require的用法分析
在Vue項(xiàng)目中,我們經(jīng)常需要引入外部的模塊或文件,這時(shí)候就會(huì)用到import和require這兩個(gè)關(guān)鍵字,本文將詳細(xì)分析它們的用法,并提供具體的代碼實(shí)例和解釋,需要的朋友可以參考下2023-06-06
vue學(xué)習(xí)教程之帶你一步步詳細(xì)解析vue-cli
這篇文章的主題是vue-cli的理解?;蛟S,很多人在開(kāi)發(fā)vue的時(shí)候,我們會(huì)發(fā)現(xiàn)一個(gè)問(wèn)題——只會(huì)去用,而不明白它的里面的東西?,F(xiàn)在的框架可以說(shuō)是足夠的優(yōu)秀,讓開(kāi)發(fā)者不用為搭建開(kāi)發(fā)環(huán)境而煩惱。但是有時(shí)候,我們還是得回到原始生活體驗(yàn)一下,才能夠讓自己更上層樓。2017-12-12
vue中的事件修飾符once,prevent,stop,capture,self,passive
這篇文章主要介紹了vue中的事件修飾符once,prevent,stop,capture,self,passive,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
vue中項(xiàng)目頁(yè)面空白但不報(bào)錯(cuò)產(chǎn)生的原因及分析
這篇文章主要介紹了vue中項(xiàng)目頁(yè)面空白但不報(bào)錯(cuò)產(chǎn)生的原因及分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
解決vue watch數(shù)據(jù)的方法被調(diào)用了兩次的問(wèn)題
這篇文章主要介紹了解決vue watch數(shù)據(jù)的方法被調(diào)用了兩次的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11

