前端 CSS 動(dòng)態(tài)設(shè)置樣式::class、:style 等技巧(推薦)

一、:class 動(dòng)態(tài)綁定類(lèi)名
v-bind:class(縮寫(xiě)為 :class)可以動(dòng)態(tài)地綁定一個(gè)或多個(gè) CSS 類(lèi)名。
1. 對(duì)象語(yǔ)法
通過(guò)對(duì)象語(yǔ)法,可以根據(jù)條件動(dòng)態(tài)切換類(lèi)名。
<template> <div :class="{ greenText: isActive, 'red-text': hasError }">海綿寶寶不喜歡儂,喜歡章魚(yú)哥。</div> </template> <script> export default { data() { return { isActive: true, hasError: false, }; }, }; </script> <style> .greenText { color: green; } .red-text { color: red; } </style>
- greenText:當(dāng) isActive 為 true 時(shí),添加 greenText 類(lèi)。
- red-text:當(dāng) hasError 為 true 時(shí),添加 red-text 類(lèi)。
效果圖:
2. 數(shù)組語(yǔ)法
通過(guò)數(shù)組語(yǔ)法,可以同時(shí)綁定多個(gè)類(lèi)名。
<template> <div :class="[textClass, bgcClass]">海綿寶寶不喜歡儂,喜歡章魚(yú)哥。</div> </template> <script> export default { data() { return { textClass: 'greenText', bgcClass: 'pinkBgc', }; }, }; </script> <style> .greenText { color: green; } .pinkBgc { width: 300px; height: 200px; background-color: pink; margin: 200px auto; } </style>
textClass 和 bgcClass 是數(shù)據(jù)屬性,它們的值會(huì)同時(shí)作為類(lèi)名綁定到元素上。
效果圖:
3. 結(jié)合計(jì)算屬性
當(dāng)類(lèi)名的邏輯較為復(fù)雜時(shí),可以使用計(jì)算屬性來(lái)動(dòng)態(tài)生成類(lèi)名對(duì)象。
<template> <div :class="computedClass">海綿寶寶不喜歡儂,喜歡章魚(yú)哥。</div> </template> <script> export default { data() { return { isActive: true, hasError: true }; }, computed: { computedClass() { return { greenText: this.isActive && !this.hasError, 'text-red': this.hasError }; } } }; </script> <style> .greenText { color: green; } .text-red{ color: red; } </style>
- greenText:isActive 為true并且hasError為false的時(shí)候生效;
- text-red:hasError 為true的時(shí)候生效;
效果圖:
二、:style 動(dòng)態(tài)綁定內(nèi)聯(lián)樣式
v-bind:style(縮寫(xiě)為 :style)可以動(dòng)態(tài)地綁定內(nèi)聯(lián)樣式。
1. 對(duì)象語(yǔ)法
通過(guò)對(duì)象語(yǔ)法,可以直接綁定樣式對(duì)象。
<template> <div :style="{ color: activeColor, fontSize: fontSize + 'px' }">海綿寶寶不喜歡儂,喜歡章魚(yú)哥。</div> </template> <script> export default { data() { return { activeColor: 'red', fontSize: 12 }; }, }; </script>
activeColor 和 fontSize 是數(shù)據(jù)屬性,它們的值會(huì)作為樣式綁定到元素上。
效果圖:
2. 數(shù)組語(yǔ)法
通過(guò)數(shù)組語(yǔ)法,可以同時(shí)綁定多個(gè)樣式對(duì)象。
<template> <div :style="[styles1, styles2]">海綿寶寶不喜歡儂,喜歡章魚(yú)哥。</div> </template> <script> export default { data() { return { styles1: { color: 'red', fontSize: '14px' }, styles2: { fontWeight: 'bold', textDecoration: 'underline' } }; }, }; </script>
styles1 和 styles2 的所有樣式都會(huì)綁定到元素上。
效果圖:
3. 使用三元表達(dá)式
可以在 :style 中使用三元表達(dá)式,根據(jù)條件動(dòng)態(tài)設(shè)置樣式值。
<template> <div :style="{ color: isActive ? 'green' : 'red' }">海綿寶寶不喜歡儂,喜歡章魚(yú)哥。</div> </template> <script> export default { data() { return { isActive: true }; }, }; </script>
效果圖:
4. 使用模板字符串
可以使用模板字符串動(dòng)態(tài)拼接樣式值。
<template> <div :style="`color: ${isActive ? 'green' : 'red'}; font-size: ${fontSize}px`" class="demo">海綿寶寶不喜歡儂,喜歡章魚(yú)哥。</div> </template> <script> export default { data() { return { isActive: false, fontSize: 12 }; }, }; </script>
效果圖:
到此這篇關(guān)于前端 CSS 動(dòng)態(tài)設(shè)置樣式::class、:style 等技巧(推薦)的文章就介紹到這了,更多相關(guān)css動(dòng)態(tài)設(shè)置樣式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
- CSS Grid 是一種二維布局系統(tǒng),可以同時(shí)控制行和列,相比 Flex(一維布局),更適合用在整體頁(yè)面布局或復(fù)雜模塊結(jié)構(gòu)中,這篇文章主要介紹了前端CSS Grid 布局詳解,需要的朋2025-04-16
CSS Padding 和 Margin 區(qū)別全解析
CSS 中的 padding 和 margin 是兩個(gè)非?;A(chǔ)且重要的屬性,它們用于控制元素周?chē)目瞻讌^(qū)域,本文將詳細(xì)介紹 padding 和 margin 的概念、區(qū)別以及如何在實(shí)際項(xiàng)目中使用它們2025-04-07- will-change 是一個(gè) CSS 屬性,用于告訴瀏覽器某個(gè)元素在未來(lái)可能會(huì)發(fā)生哪些變化,本文給大家介紹CSS will-change 屬性詳解,感興趣的朋友一起看看吧2025-04-07
- 本文給大家分享在 CSS 中,去除a標(biāo)簽(超鏈接)的下劃線的幾種方法,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-04-07
- 在前端開(kāi)發(fā)中,CSS(層疊樣式表)不僅是用來(lái)控制網(wǎng)頁(yè)的外觀和布局,更是實(shí)現(xiàn)復(fù)雜交互和動(dòng)態(tài)效果的關(guān)鍵技術(shù)之一,隨著前端技術(shù)的不斷發(fā)展,CSS的用法也日益豐富和高級(jí),本文將2025-04-07
css中的 vertical-align與line-height作用詳解
文章詳細(xì)介紹了CSS中的`vertical-align`和`line-height`屬性,包括它們的作用、適用元素、屬性值、常見(jiàn)使用場(chǎng)景、常見(jiàn)問(wèn)題及解決方案,感興趣的朋友跟隨小編一起看看吧2025-03-26淺析CSS 中z - index屬性的作用及在什么情況下會(huì)失效
z-index屬性用于控制元素的堆疊順序,值越大,元素越顯示在上層,它需要元素具有定位屬性(如relative、absolute、fixed或sticky),本文給大家介紹CSS 中z - index屬性的作用2025-03-21- 文章詳細(xì)介紹了CSS中的打印媒體查詢@mediaprint包括基本語(yǔ)法、常見(jiàn)使用場(chǎng)景和代碼示例,如隱藏非必要元素、調(diào)整字體和顏色、處理鏈接的URL顯示、分頁(yè)控制、調(diào)整邊距和背景等2025-03-18
CSS模擬 html 的 title 屬性(鼠標(biāo)懸浮顯示提示文字效果)
本文介紹了如何使用CSS模擬HTML的title屬性,通過(guò)鼠標(biāo)懸浮顯示提示文字效果,通過(guò)設(shè)置`.tipBox`和`.tipBox.tipContent`的樣式,實(shí)現(xiàn)了提示內(nèi)容的隱藏和顯示,感興趣的朋友一起2025-03-10前端 CSS 動(dòng)態(tài)設(shè)置樣式::class、:style 等技巧(推薦)
本文介紹了Vue.js中動(dòng)態(tài)綁定類(lèi)名和內(nèi)聯(lián)樣式的兩種方法:對(duì)象語(yǔ)法和數(shù)組語(yǔ)法,通過(guò)對(duì)象語(yǔ)法,可以根據(jù)條件動(dòng)態(tài)切換類(lèi)名或樣式;通過(guò)數(shù)組語(yǔ)法,可以同時(shí)綁定多個(gè)類(lèi)名或樣式,此外2025-02-26