uniapp(微信小程序)>關于父子組件的樣式傳遞問題(自定義組件樣式穿透)

在父組件中給子組件添加類名,子組件的樣式由父組件決定

由于"微信小程序"存在【樣式隔離機制】,且默認設置為isolated(啟用樣式隔離),因此這里給出以下兩種解決方案:

// 小程序編譯機制
1. 當 <style scoped> 存在時,uni-app 會通過 ?添加屬性選擇器? 實現樣式隔離(如 [data-v-hash])。
但小程序編譯后,自定義組件無法添加此類屬性,也就無法命中元素2. 非 scoped 的 <style> 標簽不會添加隔離屬性// H5無論是否添加"scoped"屬性,樣式表現都一致
H5 的渲染基于瀏覽器,page 會被解析為 <div> 或 <body> 元素。即使使用 <style scoped>,
由于瀏覽器默認的樣式繼承機制, 樣式可能間接生效(如通過父元素繼承)

1.CSS變量穿透(推薦: 此方案不受樣式隔離限制,適配所有端)

缺點:所需的CSS屬性要逐個設置變量,自定義組件逐個接收
 <!-- 父組件 Parent.vue -->
<template><Child class="parent-style"></Child>
</template><style>
.parent-style {/* 定義 CSS 變量 */--img-width: 262rpx;--img-height: 120rpx;--img-border-radius: 16rpx 16rpx 0 0;
}
</style>  
<!-- 子組件 Child.vue -->
<template><view class="child-box"><image class="child-img" /></view>
</template> <style>
.child-img {width: var(--img-width);height: var(--img-height);border-radius: var(--img-border-radius);
}
</style>

2.配置隔離模式(不太推薦)

styleIsolation是?"微信小程序?"特有的樣式隔離配置項,具體有哪些屬性值在最下方圖中。
在測試中,可能是–組件層級–的緣故,只有配置了"shared"、"page-shared"樣式才生效。

注意: 父子組件<style>標簽不能添加"scoped"屬性,可把這個樣式單獨放進 <style>

缺點:

1.易造成樣式污染,即父子組件若存在同類名會相互干擾樣式,其他設置了"shared"的組件可能也會受到污染
2.子組件元素要定位明確,否則無法命中元素

2.1 選項式api:
 <!-- 父組件 Parent.vue -->
export default {options:{styleIsolation: 'shared',},data() {return {}}
}
2.2 組合式api:
 <!-- 父組件 Parent.vue -->
<script setup>
import { defineOptions } from 'vue';
defineOptions({options: {styleIsolation: 'shared' }
});
</script>
<!-- 父組件 Parent.vue(.child-img對應的是子組件中要修改的元素類名) -->
.child-img {width: 298rpx;height: 186rpx;border-radius: 16rpx;}

在這里插入圖片描述
文檔地址

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

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

相關文章

基于FastAPI框架的日志模塊設計

以下是一個基于FastAPI框架設計的日志模塊&#xff0c;結合SQLite數據庫實現增刪改查功能的完整實現方案&#xff1a; 1. 項目結構 your_project/ ├── app/ │ ├── logs/ # 日志模塊目錄 │ │ ├── models.py # 數據庫模型定義 │ │ …

面試題:C++虛函數可以是內聯函數嗎?

目錄 1.引言 2.示例 3.總結 1.引言 為什么C的虛函數和內聯函數這兩個看似矛盾的特性能否共存&#xff1f;這個問題實際上觸及了C編譯期優化與運行時多態性之間的微妙平衡。我發現這個問題不僅是面試中的常見陷阱&#xff0c;更是理解C深層機制很好的一個點。 虛函數可以被聲…

用python清除PDF文件中的水印(Adobe Acrobat 無法刪除)

學校老師發的資料&#xff0c;有時候會帶水印&#xff0c;有點強迫癥的都想給它去掉。用Adobe Acrobat試了下&#xff0c;檢測不到水印&#xff0c;無法刪除&#xff01;分析發現原來這類PDF文件是用word編輯的&#xff0c;其中的水印是加在了頁眉中&#xff01; 自己動手想辦法…

Oracle中自定義異常內置異常嵌套異常的捕獲處理

一、異常類型分類 類型說明示例內置預定義異常Oracle已命名異常&#xff08;如NO_DATA_FOUND&#xff09;查詢無數據時觸發內置非預定義異常未命名的Oracle錯誤&#xff08;需用PRAGMA EXCEPTION_INIT關聯&#xff09;ORA-02290&#xff08;違反檢查約束&#xff09;自定義異常…

《Flutter社交應用暗黑奧秘:模式適配與色彩的藝術》

暗黑模式已從一種新奇的功能演變為用戶體驗中不可或缺的一環。對于Flutter開發者而言&#xff0c;如何在社交應用中完美實現暗黑模式適配與色彩對比度優化&#xff0c;是一場充滿挑戰與驚喜的技術探索之旅。 暗黑模式&#xff0c;絕非僅僅是將界面顏色反轉這么簡單。從用戶體驗…

【kubernetes】通過Sealos 命令行工具一鍵部署k8s集群

一、前言 1、sealos安裝k8s集群官網&#xff1a;K8s > Quick-start > Deploy-kubernetes | Sealos Docs 2、本文安裝的k8s版本為v1.28.9 3、以下是一些基本的安裝要求&#xff1a; 每個集群節點應該有不同的主機名。主機名不要帶下劃線。所有節點的時間需要同步。需要…

視覺-語言-動作模型:概念、進展、應用與挑戰(上)

25年5月來自 Cornell 大學、香港科大和希臘 U Peloponnese 的論文“Vision-Language-Action Models: Concepts, Progress, Applications and Challenges”。 視覺-語言-動作 (VLA) 模型標志著人工智能的變革性進步&#xff0c;旨在將感知、自然語言理解和具體動作統一在一個計…

Java筆記4

第一章 static關鍵字 2.1 概述 以前我們定義過如下類&#xff1a; public class Student {// 成員變量public String name;public char sex; // 男 女public int age;// 無參數構造方法public Student() {}// 有參數構造方法public Student(String a) {} }我們已經知道面向…

記一次redis未授權被種挖礦

#挖礦程序 /etc/httpgd /etc/nnt.sh #大小問 #定時任務名為root /var/spool/cron/root 內容&#xff1a;*/50 * * * * sh /etc/nnt.sh >/dev/null 2>&1 定時任務只有所有者可以寫&#xff0c;且chmod修改權限失敗。 #先查看定時任務的拓展屬性&#xff0c;不可變(i…

Excel分組計算求和的兩種實現方案

文章目錄 背景樣例數據方案一、函數求和實現步驟缺點 方案二、數據透視表實現步驟優點 背景 在Excel文檔中&#xff0c;經常會進行數據的求和計算&#xff0c;可使用不同的方式實現&#xff0c;記錄下來&#xff0c;方便備查。 樣例數據 已有商品銷量信息&#xff0c;包含銷…

如何應對網站被爬蟲和采集?綜合防護策略與實用方案

在互聯網時代&#xff0c;網站內容被惡意爬蟲或采集工具竊取已成為常見問題。這不僅侵犯原創權益&#xff0c;還可能影響網站性能和SEO排名。以下是結合技術、策略與法律的綜合解決方案&#xff0c;幫助網站構建有效防護體系。 一、技術防護&#xff1a;阻斷爬蟲的“技術防線”…

網卡網孔速率的協商是如何進行的?

網卡與交換機等網絡設備之間的速率協商主要通過**自動協商&#xff08;Auto-Negotiation&#xff09;**機制實現&#xff0c;其核心是物理層&#xff08;PHY&#xff09;芯片之間的信息交互。以下是協商過程的詳細解析&#xff1a; 一、自動協商的核心流程 1. 發送配置幀&am…

FastExcel 本地開發和Linux上上傳Resource文件的差異性

不能直接通過路徑來獲取 這個是一個下載導出文件的操作 GetMapping(value "/export/all") public void exportAll(HttpServletResponse response, LaylineListReq req) throws IOException {// 從類路徑下獲取 Excel 文件資源ClassPathResource classPathResource…

【RAG】Milvus、Pinecone、PgVector向量數據庫索引參數優化

Milvus 、PgVector 索引參數優化 IVF類索引關鍵參數&#xff08;基于聚類算法&#xff09; nlist (倒排列表數量): 決定將向量空間劃分為多少個聚類中心值越大搜索越精確但耗時越長推薦值: 通常設置為數據量的4√n到n/1000之間例如: 1百萬數據量可設nlist1000到4000 nprobe (搜…

5月12日信息差

一、國際政治與安全:俄烏沖突與中美博弈 1. 烏克蘭戰場信息分化 俄方戰報: 俄羅斯國防部宣稱在頓巴斯地區摧毀烏軍12輛坦克及3套美制“海馬斯”火箭系統,稱烏軍反攻受阻。 信息特點:強調裝備摧毀數量,淡化前線實際控制變化。 烏方通報: 烏克蘭總參謀部表示已奪回巴赫穆特…

Python如何使用進行風險管理和投資組合優化

文章目錄 前言python3.13 環境配置風險管理投資組合優化 前言 在 Python 中&#xff0c;可以使用多個庫來進行風險管理和投資組合優化&#xff0c;以下是一些常見的方法和庫。 python3.13 環境配置 python3.13安裝教程&#xff1a;https://blog.csdn.net/2501_91538706/artic…

C++ 狀態模式詳解

狀態模式&#xff08;State Pattern&#xff09;是一種行為設計模式&#xff0c;它允許一個對象在內部狀態改變時改變其行為&#xff0c;使對象看起來像是改變了其類。 核心概念 設計原則 狀態模式遵循以下設計原則&#xff1a; 單一職責原則&#xff1a;將狀態相關行為分離…

Html5新特性_js 給元素自定義屬性_json 詳解_淺克隆與深克隆

文章目錄 1. html5新特性2.用 js 給元素自定義屬性3.json3.1 json與普通對象的區別3.2 json對象與 js對象的轉化 4.淺克隆和深克隆 1. html5新特性 html5中引入了新的特性&#xff08;新的標簽&#xff09;&#xff0c;下面的新標簽是新的結構標簽&#xff0c;不過不太常用 h…

std::move 和 std::forward

關聯點 都是執行轉換(cast)的函數&#xff08;函數模板&#xff09;&#xff0c;不產生任何可執行代碼。且都可以把實參轉換成右值。 std::move無條件將實參&#xff08;const除外 &#xff09;轉換成右值引用&#xff0c;std::forward 條件返回右值引用 _EXPORT_STD template…

Uniapp編寫微信小程序,使用canvas進行繪圖

一、canvas文檔&#xff1a; https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial 二、數據繪制&#xff08;單位是像素&#xff09;&#xff1a; 1、繪制文本&#xff1a; 文字的長度超過設置的最大寬度&#xff0c;文字會縮在一起 ① 填充文本&#xf…