微信小程序 Skyline 樣式守衛:寫 WXSS 前先對一遍清單

前言

Taro 項目切到 Skyline 渲染之後,同一份 WXSS 在 Skyline 下的行爲和 WebView 不完全一樣。常見的情況是:代碼沒報錯,樣式也沒生效——漸變沒渲染、網格錯位、橫向標籤欄回彈到最左邊、scroll-into-view 沒反應。這類問題排查成本高,因爲日誌裏往往沒有明確提示。

下面介紹的這個 Skill,就是把 Skyline 的樣式限制、默認值差異和佈局陷阱整理成一份檢查清單,附帶一個不依賴 devtools 的編譯校驗腳本。

這是什麼

微信小程序 Skyline 樣式守衛,座標 @user_4edac78e/taro-skyline-wxss,版本 1.0.1,來源 community,分類 dev-programming,發佈者 user_4edac78e。

定位是:寫/改 Taro + 微信小程序 Skyline 渲染項目的 WXSS 時使用。解決的問題是 Skyline 與 WebView 的樣式能力差異,以及若干佈局、滾動相關的隱性坑。

Skill 不需要 API Key(標籤 requires_api_key=false)。

核心功能

資料裏列出的能力分四類。

1、樣式支持黑名單

Skyline 不完整支持的 CSS 特性,寫之前需要先判斷:

  • radial-gradient 只支持 circle,不支持橢圓
  • 尺寸只支持 px
  • background-image 最多 2 個值
  • box-shadow 不支持疊加
  • backdrop-filter / filter 只支持單 function
  • 沒有 inline-block
  • 沒有屬性選擇器

2、默認值差異

同樣的聲明,Skyline 下的初值不一樣:border-width 默認 3、box-sizing 默認 border-box、display 默認 flex。佈局結果和 WebView 不一致時,優先懷疑這三項。

3、佈局與滾動陷阱

  • flex-wrap + gap 首行錯位,少放一張
  • scroll-view 偏移被 setData 重置
  • 橫向滾動時 scroll-into-view 不生效,須改用受控 scroll-left 加交替 1px 偏移
  • scroll-view 裁掉撐滿高度子項的 box-shadow
  • scroll-into-view 常駐生效

4、編譯校驗腳本

附帶不依賴 devtools 的 SCSS 編譯校驗腳本,含漸變違規自動斷言。也就是說,把漸變寫進 WXSS 後,腳本可以在編譯階段直接把不合規的寫法攔下來,不用打開開發者工具看效果。

安裝與啓用

安裝命令未能覈實。官方頁面和 API 地址在寫作時均抓取失敗,資料裏也沒有給出安裝命令,因此不在這裏推測,請以官方頁面爲準:

https://www.skillhub.cn/skills/user_4edac78e/taro-skyline-wxss

座標:

@user_4edac78e/taro-skyline-wxss

啓用方式按觸發詞走,命中以下關鍵詞時加載該 Skill:Skyline、小程序樣式不生效、背景沒渲染、漸變不生效、網格錯位、chip 彈回首位、橫向標籤欄回彈/縮回最左邊、scroll-left 不生效、scroll-into-view 沒反應、Taro 樣式、wxss warning、glass-easel。

典型用法

按資料給出的可復現場景,最常見的是橫向滾動定位失效:

1、橫滾場景裏,scroll-into-view 不生效。
2、改用受控 scroll-left,配合交替的 1px 偏移來觸發滾動更新。
3、其餘場景按清單逐項比對:漸變先查 radial-gradient 是否寫成橢圓;陰影先查是否疊加;間距錯位先查 flex-wrap + gap 的首行。

改完 WXSS 後跑一遍附帶的 SCSS 編譯校驗腳本,漸變違規會在編譯階段斷言失敗。

適用場景與注意

適合兩類人:一是 Taro 項目準備切 Skyline、想提前排掉樣式差異的;二是已經在 Skyline 下遇到「樣式沒生效但沒報錯」這類問題、需要一個排查順序的。

限制方面:能力清單來自 Skill 簡介,覆蓋的是已知差異點,不等於 Skyline 的全部限制。版本 1.0.1,Skyline 自身的樣式能力仍在變化,使用前建議對照官方文檔複覈。

另外,SkillHub 頁面抓取到的評分爲 100000、下載 1045、安裝 0,這些是抓取時點的數據,會隨時間變化。

結尾

這個 Skill 的價值在於把零散的 Skyline 樣式差異收斂成一張清單和一個校驗腳本,減少「改了沒反應」式的排查。官方地址:https://api.skillhub.cn/user_4edac78e/taro-skyline-wxss ,頁面地址:https://www.skillhub.cn/skills/user_4edac78e/taro-skyline-wxss

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜