vue關於class和樣式的使用


這篇文章主要為大家詳細介紹了Vue.js的Class與樣式綁定,具有一定的參考價值,感興趣的小伙伴們可以參考一下

數據綁定一個常見需求是操作元素的 class 列表和它的內聯樣式。因為它們都是 attribute,我們可以用 v-bind 處理它們:只需要計算出表達式最終的字符串。

不過,字符串拼接麻煩又易錯。因此,在 v-bind 用於 class 和 style 時,Vue.js 專門增強了它。表達式的結果類型除了字符串之外,還可以是對象或數組。

下面就介紹這幾種綁定方式的使用:

1.對象語法:

我們可以傳給v-bind:class一個對象,以動態的切換class。注意:v-bind:class指令可以與普通的class特性共存:

<div class="mySelf" v-bind:class="{'class-a':isA,'class-b':isB}"></div>

data:{
   isA:true,
   isB:false
}

此時渲染:

<div class="mySelf class-a"></div>

通過控制isA和isB的變化來控制class的顯示和隱藏

換種思考方式:我們可以把class直接賦值一個對象

<div class="mySelf" v-bind:class="classObject"></div>

data:{
classObject:{
'class-a':true,
'class-b':false
}
}

我們也可以在這里綁定一個返回對象的一個計算屬性,所以這里的用法非常強大!。

2.數組語法:

我們可以把一個數組傳給 v-bind:class,以應用一個 class 列表

<div v-bind:class="[classA,classB]"></div>
 
data: {
 classA: 'class-a',
 classB: 'class-b'
}

此時渲染:

<div v-bind:class="[classA,classB]">
data: { classA: 'class-a', classB: 'class-b',
isB:true }

如果想根據條件切換列表的class,可以用三元表達式

<div v-bind:class="[classA,isB?classB:'']"></div>

可以控制isB來調節classB的顯隱

不過,當有多個條件 class 時這樣寫有些繁瑣。在 1.0.19+ 中,可以在數組語法中使用對象語法:

<div v-bind:class="[classA, { classB: isB, classC: isC }]">

3.綁定內聯樣式

v-bind:style 的對象語法十分直觀——看着非常像 CSS,其實它是一個 JavaScript 對象。CSS 屬性名可以用駝峰式(camelCase)或短橫分隔命名(kebab-case)

<div v-bind:style="{color:bgColor,fontSize:fontSize+ 'px'}"></div>

data:{
bgColor:'white',
fontSize: 16
}

既然可以這么寫,那么也就可以寫成對象模式,這樣會更清晰

<div v-bind:style="styleObject"></div>

data:{
styleObject:{
color:'white',
fontSize:'16px'
}
}

同樣的,對象語法也可以結合返回對象的計算屬性使用

 

這就是所總結樣式用法,希望於大家共同成長吧!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM