微信自定義元件修改其他元件樣式
阿新 • • 發佈:2022-04-22
1、需求:需要在微信的一個元件內改引用的其他元件樣式屬性,發現不能直接像在page上直接修改,也沒有vue的:v-deep、/deep/之類的樣式穿透
2、解決:怎麼處理這種樣式隔離問題呢
微信裡面有種屬性就是指定特殊的樣式隔離選項styleIsolation,官網網址:
https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/wxml-wxss.html#%E7%BB%84%E4%BB%B6%E6%A0%B7%E5%BC%8F%E9%9A%94%E7%A6%BB
Component({ ... options: { styleIsolation:'shared' } ... })
從小程式基礎庫版本 2.10.1 開始,也可以在頁面或自定義元件的 json 檔案中配置 styleIsolation (這樣就不需在 js 檔案的 options 中再配置)
{ "component": true, "styleIsolation":"shared", "usingComponents": {} }
styleIsolation 選項從基礎庫版本 2.6.5 開始支援。它支援以下取值:
isolated 表示啟用樣式隔離,在自定義元件內外,使用 class 指定的樣式將不會相互影響(一般情況下的預設值); apply-shared 表示頁面 wxss 樣式將影響到自定義元件,但自定義元件 wxss 中指定的樣式不會影響頁面; shared 表示頁面 wxss 樣式將影響到自定義元件,自定義元件 wxss 中指定的樣式也會影響頁面和其他設定了 apply-shared 或 shared 的自定義元件。(這個選項在外掛中不可用。)
使用後兩者時,請務必注意元件間樣式的相互影響。
如果這個 Component 構造器用於構造頁面 ,則預設值為 shared ,且還有以下幾個額外的樣式隔離選項可用:
page-isolated 表示在這個頁面禁用 app.wxss ,同時,頁面的 wxss 不會影響到其他自定義元件; page-apply-shared 表示在這個頁面禁用 app.wxss ,同時,頁面 wxss 樣式不會影響到其他自定義元件,但設為 shared 的自定義元件會影響到頁面; page-shared 表示在這個頁面禁用 app.wxss ,同時,頁面 wxss 樣式會影響到其他設為 apply-shared 或 shared 的自定義元件,也會受到設為 shared 的自定義元件的影響。