【第三節】Class與Style綁定

文章目錄

  • Class與Style綁定
    • 綁定HTML Class
      • 對象語法
      • 數組語法
    • 綁定內聯樣式
      • 對象語法
      • 數組語法
      • 自動添加前綴

Class與Style綁定

數據綁定一個常見需求是操作元素的 class 列表和它的內聯樣式,因為它們都是屬性,我們可以用 v-bind 處理它們:我們只需要計算出表達式最終的字符串。不過,字符串拼接麻煩又易錯。因此,在v-bind 用于 class 和 style 時,Vue.js 專門增強了它。表達式的結果類型除了字符串之外,還可以是對象或數組。
盡管可以用 Mustache 標簽綁定 class,比如 class="{{className}}”,但是不推薦這種寫法和 v-bind:class 混用。兩者只能選其一!
在這里插入圖片描述

綁定HTML Class

對象語法

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

<div class="static" v-bind:class="{'class-a': isA, 'class-b': isB }"></div>
data:{isA: true,isB: false
}	

渲染為:
<div class="static class-a"></div>
當isA和 isB 變化時,class 列表將相應地更新。例如,如果isB 變為 true,class 列表將變為"static class-a class-b"
在這里插入圖片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Document</title><script src="vue.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.12/vue.js"></script><style>
/*    定義了三個css類*/
/*基礎樣式,包含字體大小、寬度、居中顯示、黃色背景等固定樣式*/.static {font-size: 120px;width: 600px;margin: 0 auto;background-color: yellow;height: 120px;line-height: 120px;text-align: center;}
/*文本顏色設為紅色*/.class-a {color: #FF0000;}
/*文本添加下劃線*/.class-b {text-decoration: underline;}</style>
</head><body>
<!--請見控制臺--><div id="app"><!-- 動態類名綁定 當isA為true時,給元素添加class-a類當isB為true時,給元素添加class-b類元素始終保留static基礎類,動態類則根據變量值決定是否添加--><div class="static" v-bind:class="{ 'class-a': isA, 'class-b': isB }">臺灣小凡 vue.js 官網講解</div><div align="center"><!-- 事件綁定 兩個按鈕分別通過@click(v-on:click的簡寫)綁定了點擊事件點擊第一個按鈕時,isA =!isA會切換isA的布爾值 @click="isA =!isA"給isA賦值點擊第二個按鈕時,isB =!isB會切換isB的布爾值--><button @click="isA =!isA">isA ={{isA}}</button><button @click="isB =!isB">isB ={{isB}}</button></div></div><script>
//     創建了一個 Vue 實例,掛載到 id 為app的元素上
// 在data中定義了兩個布爾值變量isA和isB,初始值都為truevar vm = new Vue({el: '#app',data: {isA: true,isB: true}});</script>
</body></html>

你也可以直接綁定數據里的一個對象

<div v-bind:class="classObject"></div>
data:{
classObject: {
'class-a': true,
'class-b': alse}
}

我們也可以在這里綁定一個返回對象的計算屬性。這是一個常用且強大的模式。
在這里插入圖片描述
多個class樣式
在這里插入圖片描述

數組語法

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

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

在這里插入圖片描述

  • 根據條件切換列表中的class,使用三元表達式
<div v-bind:class="[classA,isB ? classB :"]>

此例始終添加 classA,但是只有在 isB 是true 時添加 classB
在這里插入圖片描述

  • 新功能
    當有多個條件 class 時這樣寫有些繁瑣。在 1.0.19+中,可以在數組語法中使用對象語法
<div v-bind:class="[classA, { classB: isB, classC: isC }]">

在這里插入圖片描述

綁定內聯樣式

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

<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
data:{
activeColor: 'red',
fontSize: 30
}

在這里插入圖片描述

對象語法

直接綁定到一個樣式對象通常更好,讓模板更清晰

<div v-bind:style="styleObject"></div>
data:{styleObject: {color: 'red',fontSize: '13px'}}

同樣的,對象語法常常結合返回對象的計算屬性使用
在這里插入圖片描述
在這里插入圖片描述

數組語法

v-bind:style 的數組語法可以將多個樣式對象應用到一個元素上:

<div v-bind:style="[styleObjectA, styleObjectB]"/>

在這里插入圖片描述

自動添加前綴

當 v-bind:style 使用需要廠商前綴的 CSS 屬性時如 transform,Vue.is 會自動偵測并添加相應的前綴,

-webkit-box-shadow: 0 2px 3px rgba(0,0,0, .1);
-moz-box-shadow: 0 2px 3px rgba(0,0,0,.1);
-o-box-shadow:0 2px 3px rgba(0,0,0,.1); box-shadow: 0 2px 3px rgba(0,0,0,.1);

在這里插入圖片描述

因為各家瀏覽器,規格不一,所以css3很多好用的語法
都需要加上 前綴詞,vue.js 針對常用的css3語法,會自動補上 兼容瀏覽器的前綴詞

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/92293.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/92293.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/92293.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CMOS知識點 離子注入工藝

知識點8&#xff1a;離子注入是為了將摻雜劑&#xff08;如硼、磷等&#xff09;精確引入硅晶片的近表面區域&#xff0c;以改變其電學性質。工藝過程&#xff1a;電離與加速&#xff1a;摻雜劑原子在離子源中被電離&#xff08;帶電&#xff09;&#xff0c;通過高壓電場&…

從安裝到上手:Ubuntu 22.04 玩轉 Containerd 2.1.3 容器運行時

Containerd 是一款支持 OCI 規范的容器運行時&#xff0c;注重容器部署和生命周期管理的簡單性、健壯性與可移植性&#xff0c;常被嵌入到 Docker 和 Kubernetes 等系統中。本文將詳細介紹在 Ubuntu 22.04 服務器上通過二進制包手動安裝 Containerd 的完整步驟&#xff0c;包括…

Hadoop與云原生集成:彈性擴縮容與OSS存儲分離架構深度解析

Hadoop與云原生集成的必要性Hadoop在大數據領域的基石地位作為大數據處理領域的奠基性技術&#xff0c;Hadoop自2006年誕生以來已形成包含HDFS、YARN、MapReduce三大核心組件的完整生態體系。根據CSDN技術社區的分析報告&#xff0c;全球超過75%的《財富》500強企業仍在使用Had…

飛算科技:以創新科技引領數字化變革,旗下飛算 JavaAI 成開發利器

作為國家級高新技術企業&#xff0c;飛算科技專注于自主創新&#xff0c;在數字科技領域持續深耕&#xff0c;用前沿技術為各行業客戶賦能&#xff0c;助力其實現數字化轉型升級的飛躍。?飛算科技憑借深厚的技術積累&#xff0c;將互聯網科技、大數據、人工智能等技術與實際應…

多線程Python爬蟲:加速大規模學術文獻采集

1. 引言 在學術研究過程中&#xff0c;高效獲取大量文獻數據是許多科研工作者和數據分析師的需求。然而&#xff0c;傳統的單線程爬蟲在面對大規模數據采集時&#xff0c;往往效率低下&#xff0c;難以滿足快速獲取數據的要求。因此&#xff0c;利用多線程技術優化Python爬蟲&a…

NX717NX720美光固態閃存NX724NX728

美光NX系列固態閃存深度解析&#xff1a;技術、性能與市場洞察一、技術架構與核心創新美光NX系列固態閃存&#xff08;包括NX717、NX720、NX724、NX728&#xff09;的技術根基源于其先進的G9 NAND架構。該架構通過5納米制程工藝和多層3D堆疊技術&#xff0c;實現了存儲單元密度…

淺談——C++和C#差異

雖然這個話題看著似乎有些關公戰秦瓊的味道&#xff0c;但是作為游戲開發者&#xff0c;C和C#一定是繞不開的兩門語言。不過雖然說是比較二者差異&#xff0c;因為我學習的過程主要是先學C&#xff0c;所以我先基于C的認知&#xff0c;再來聊聊C#之中的不同。&#xff08;為什么…

rocky9-zabbix簡單部署

目錄 一、準備 1、&#xff08;rocky9&#xff09; 2、配置數據庫 二、配置文件 1、導入初始架構與數據 2、配置相關文件 三、啟動服務 1、瀏覽器訪問 2、解決亂碼問題 ?編輯 四、監控 ① 添加主機 1、修改配置文件 2、啟動服務 3、網頁添加 ②添加監控模塊 1…

tabBar設置底部菜單選項、iconfont圖標(圖片)庫、模擬京東app的底部導航欄

歡迎來到我的UniApp技術專欄&#xff01;&#x1f389; 在這里&#xff0c;我將與大家分享關于UniApp開發的實用技巧、最佳實踐和項目經驗。 專欄特色&#xff1a; &#x1f4f1; 跨平臺開發一站式解決方案 &#x1f680; 從入門到精通的完整學習路徑 &#x1f4a1; 實戰項目經…

7.22總結mstp,vrrp

一、MSTP技術&#xfeff;&#xfeff;MSTI和MSTI域根&#xfeff;&#xfeff;MSTP中的端口角色3. MSTP工作原理 MSTP 計算方法? CST/IST的計算和RSTP類似 ? MSTI的計算僅限于區域內 ? MSTI計算參數包含在IST BPDU中&#xff0c;和IST的計 算同步完成&#xfeff;&#xfe…

【電腦】網卡的基礎知識

網卡&#xff08;Network Interface Card, NIC&#xff09;是計算機中用于連接網絡的關鍵組件之一&#xff0c;它負責管理和發送數據包到互聯網或其他局域網設備。下面是一些關于網卡的詳細知識&#xff1a;網卡的基本結構MAC地址&#xff1a;每個網卡都有一個唯一的物理地址&a…

IPv4枯竭時代:從NAT技術到IPv6的演進之路

&#x1f50d; 開發者資源導航 &#x1f50d;&#x1f3f7;? 博客主頁&#xff1a; 個人主頁&#x1f4da; 專欄訂閱&#xff1a; JavaEE全棧專欄 IPv4&#xff08;Internet Protocol version 4&#xff09;是互聯網最核心的通信協議之一&#xff0c;自 1981 年正式標準化以來…

模式結構-微服務架構設計模式

需求&#xff08;Forces)結果上下文(Resulting context)相關模式(Related patterns)需求&#xff1a;必須解決的問題需求部分描述了必須解決的問題和圍繞這個問題的特定上下文環境。需求有時候是相互沖突的&#xff0c;所以不能指望把他們全部都解決&#xff08;必須取舍&#…

30個常用的Linux命令匯總和實戰場景示例

下面匯總常用的 30 個常用的 Linux 命令&#xff0c;每個都附有簡要說明和典型示例&#xff0c;適合日常開發、服務器維護或系統學習使用。30 個常用的 Linux 命令匯總 一、文件與目錄操作&#xff08;基礎&#xff09;命令說明示例ls列出文件和目錄ls -l 顯示詳細信息cd切換目…

Taro 網絡 API 詳解與實用案例

Taro 網絡 API 詳解與實用案例 在現代前端開發中&#xff0c;網絡通信是不可或缺的一環。Taro 作為一款多端開發框架&#xff0c;提供了豐富且統一的網絡 API&#xff0c;幫助開發者在小程序、H5、React Native 等多端環境下高效地進行數據交互。本文將詳細介紹 Taro 的四大網…

Bitbucket平臺的HTTP Access Tokens操作手冊

在Bitbucket平臺添加HTTP Access Tokens&#xff08;用于替代密碼進行認證&#xff09;。 1. 登錄Bitbucket并訪問個人設置 打開 Bitbucket 并登錄賬號。點擊右上角頭像 → 選擇 Manage account。 2. 生成Access Token 在左側菜單中選擇 Access tokens&#xff08;位于 Sec…

低成本、高泛化能力的無人機自主飛行!VLM-Nav:基于單目視覺與視覺語言模型的無地圖無人機導航

作者&#xff1a;Gobinda Chandra Sarker1^{1}1, AKM Azad2^{2}2, Sejuti Rahman1^{1}1, Md Mehedi Hasan1^{1}1單位&#xff1a;1^{1}1達卡大學&#xff0c;2^{2}2伊瑪目穆罕默德伊本沙特伊斯蘭大學論文標題&#xff1a;VLM-Nav: Mapless UAV-Navigation Using Monocular Visi…

Docker Desktop 安裝到D盤(包括wsl)

默認WSL虛擬機位置&#xff1a; C:\Users\<用戶名>\AppData\Local\Docker\wsl重裝DockerDesktop下載安裝包Docker Desktop Installer.exe在D盤創建文件夾D:\Program Files\DockerDesktopD:\Program Files\DockerDesktop\data 在cmd運行 start /w "" "Dock…

網絡協議(三)網絡層 IPv4、CIDR(使用子網掩碼進行網絡劃分)、NAT在私網劃分中的應用

利用子網掩碼進行子網劃分 這是一個模擬搭建的私網&#xff0c;有倆臺主機ab。現在主機a要給云端服務器發送一條消息&#xff0c;這條消息怎么才能到達云端服務器呢&#xff1f;確定這條數據中的源端為本地ip的9000端口&#xff0c;目的端為24.24.24.8888端口&#xff0c;首先&…

8.4 Java 原生 TCP Socket 實現 HTTP 請求解析和請求分發

使用 Java 原生 TCP Socket 實現 HTTP 請求解析和請求分發&#xff0c;是一個理解 HTTP 協議底層原理的好方法。雖然 Java 提供了 HttpServer 類來簡化 HTTP 服務器開發&#xff0c;但如果你想從 TCP 層 開始構建一個簡單的 HTTP 服務器&#xff0c;可以使用 ServerSocket 和 S…