vue如何動(dòng)態(tài)設(shè)置class、動(dòng)態(tài)設(shè)置style
vue動(dòng)態(tài)設(shè)置class、style
//動(dòng)態(tài)class對(duì)象 <div :class="{ 'isActive': true, 'red': isRed }"></div> //動(dòng)態(tài)style對(duì)象 <div :style="{ color: bgColor, fontSize: '18px' }"></div> //動(dòng)態(tài)class數(shù)組 <div :class="['is-active', isRed ? 'red' : '' ]"></div> //動(dòng)態(tài)style數(shù)組 <div :style="[{ color: bgColor, fontSize: '18px' }, { fontWeight: '500' }]"></div>
vue動(dòng)態(tài)添加樣式 :style 和 :class
動(dòng)態(tài)添加可以采用:class 也可以采用:style
但是在一個(gè)長(zhǎng)期維護(hù)的項(xiàng)目里面:style行內(nèi)樣式盡量避免。
<template> <div> <h2>動(dòng)態(tài)添加類名</h2> <!-- 第一種方式:對(duì)象的形式 --> <!-- 第一個(gè)參數(shù) 類名, 第二個(gè)參數(shù):boolean值 --> <!-- 對(duì)象的形式: 用花括號(hào)包裹起來(lái),類名用引號(hào), --> <!-- 優(yōu)點(diǎn): 以對(duì)象的形式可以寫(xiě)多個(gè),用逗號(hào)分開(kāi) --> <p :class="{'sm' : true}">對(duì)象的形式</p> <p :class="{'sm' : false, 'lg': true}">對(duì)象的形式</p> <!-- 第二種方式:三元表達(dá)式 注意點(diǎn):放在數(shù)組中,類名要用引號(hào)--> <p :class="[ controller.summary? 'sm' : 'lg' ]" >三元表示式</p> <!-- 第三種方式: 數(shù)組的形式 --> <p :class="[isTrue, isFalse]">數(shù)組的形式</p> <!-- 數(shù)組中用對(duì)象 --> <p :class="[{'sm': false}, isFalse]">數(shù)組中使用對(duì)象</p> <!--補(bǔ)充: class中還可以傳方法,在方法中返回類名--> <p :class="setClass">通過(guò)方法設(shè)置class類名</p> </div> //-選中的一項(xiàng)更換背景色,其余兄弟元素沒(méi)有背景色 <ul class="options-box"> <li v-for="(item,index) in hours" :key="index" @click="selectHour(item,index)" :class="{selected:readySelectHour === index}"> <span>{{item.name}}</span> </li> </ul> </template>
<script> export default { data () { return { isTrue: 'sm', isFalse: 'lg' }; }, method: { setclass () { return 'sm'; }, selectHour(itemhour,index){ this.hour = itemhour.name; this.readySelectHour = index; }, } } </script>
<style scoped> .sm { padding-top:10px; } .lg { padding-top:20px; } li{ text-align: center; line-height: 32px; font-size: 12px; &:hover { background-color:#f8f9fa; } &.selected{ background-color: #e6fff7; } } </style>
其次還可以用 :style
給一個(gè)div動(dòng)態(tài)添加padding-top 我們可以用上面的:class方法 也可以用:style 的方法
還是以上面的class樣式為例
:style如下
<div class="controller" :style="{paddingTop:controller.summary?'20px':'10px'}"></div>
:class如下
<div class="controller" :class="[controller.summary? 'lg':'sm']"></div>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue中ref和$refs獲取元素dom、獲取子組件數(shù)據(jù)與方法調(diào)用示例
在Vue3中要獲取子組件的DOM節(jié)點(diǎn),你可以使用ref來(lái)引用子組件,然后通過(guò)$refs來(lái)訪問(wèn)子組件的DOM,下面這篇文章主要給大家介紹了關(guān)于vue中ref和$refs獲取元素dom、獲取子組件數(shù)據(jù)與方法調(diào)用的相關(guān)資料,需要的朋友可以參考下2024-07-07淺談vue權(quán)限管理實(shí)現(xiàn)及流程
這篇文章主要介紹了淺談vue權(quán)限管理實(shí)現(xiàn)及流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04vue后端傳文件流轉(zhuǎn)化成blob對(duì)象,前端點(diǎn)擊下載返回undefined問(wèn)題
這篇文章主要介紹了vue后端傳文件流轉(zhuǎn)化成blob對(duì)象,前端點(diǎn)擊下載返回undefined問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12vue3.2?Composition?API項(xiàng)目依賴升級(jí)
這篇文章主要為大家介紹了vue3.2?Composition?API項(xiàng)目依賴升級(jí)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08vue 使用 vue-pdf 實(shí)現(xiàn)pdf在線預(yù)覽的示例代碼
這篇文章主要介紹了vue 使用 vue-pdf 實(shí)現(xiàn)pdf在線預(yù)覽的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Vue精美簡(jiǎn)潔登錄頁(yè)完整代碼實(shí)例
這篇文章主要給大家介紹了關(guān)于Vue精美簡(jiǎn)潔登錄頁(yè)完整代碼的相關(guān)資料,通過(guò)文中的方法大家可以使用實(shí)現(xiàn)簡(jiǎn)單的用戶登錄界面,下面通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07vue1.0和vue2.0的watch監(jiān)聽(tīng)事件寫(xiě)法詳解
今天小編就為大家分享一篇vue1.0和vue2.0的watch監(jiān)聽(tīng)事件寫(xiě)法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09el-table?樹(shù)形數(shù)據(jù)?tree-props?多層級(jí)使用避坑
本文主要介紹了el-table?樹(shù)形數(shù)據(jù)?tree-props?多層級(jí)使用避坑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08vue el-select綁定對(duì)象時(shí),回顯內(nèi)容不正確,始終是最后一項(xiàng)的解決
這篇文章主要介紹了vue el-select綁定對(duì)象時(shí),回顯內(nèi)容不正確,始終是最后一項(xiàng)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07