微信小程序 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

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

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

小夜