公众号正文代码白名单 · 2026 年第 4 季度

更新于 2026-11-02

一、你可以拿它做什么

  • 交付前自查:排版和设计做完,对着表查一遍,哪些样式保存后会消失,发出去之前就知道。
  • 写代码时查:不确定某个属性、某种取值能不能用,查一下再写,不用反复保存试错。
  • 接进自己的工具:做编辑器、插件或导出功能的,可以把这些规则放进自己的检查流程。

它不教你做效果,只帮你避坑:哪些能放心用,哪些一保存就消失,哪些两端表现不一样。

二、为什么写好的代码,发出去就变了?

从粘贴到读者手机,代码要经过四道处理:

处理发生在会做什么
① 编辑器改一次粘贴、插入、重开草稿改写标签,删掉部分属性
② 服务器删一次保存时(预览、发表前也会保存)按固定规则过滤 CSS、HTML、SVG
③ 页面再调一次读者打开文章清掉 class,深色模式改色,作废部分动画
④ 不同手机显示不一样显示iOS、Android、HarmonyOS NEXT 支持的属性和事件不同

每一项都写清是在哪一步被删、被改,还是 iOS、Android 都正常。出了问题能直接定位。

三、参数速查

先看几张速查表,大部分日常写法这里就能查到,逐条结果在完整版里。

3.1 CSS 属性名:756 个,服务器只删 2 个

按属性名粗分(含 -webkit- 前缀版):

类别保留删除代表
布局1100display flex grid-template-columns gap align-items aspect-ratio
尺寸与盒子1700width max-width margin padding border-radius box-shadow
文字与字体1300font-size line-height letter-spacing text-align writing-mode text-emphasis
颜色与视觉1131color background-image opacity -webkit-filter backdrop-filter clip-path;删 filter
变换与动画830transform perspective animation transition offset-path
滚动460overflow scroll-snap-type scroll-snap-stop overscroll-behavior
定位201z-index inset top left;删 position
其他580break-inside page-break-after all
@ 规则描述符240font-display src unicode-range(写在行内无效)

最容易踩的坑:position 会被删,所以 top、left、inset 写了也不生效。-- 开头的自定义属性也会整条被删。

3.2 CSS 取值:这些写法整条被删

写法例子结果
乘号calc(100% * 0.5)删整条
前后有空白的加号、减号calc(100% - 10px)删整条
整数负百分比translate(-50%,-50%)删整条
引号里带点content:"1.0"删整条
< 或 if()if(media(…): …)删整条
不跟在函数名后面的括号calc(1s / (4 / 2))删整条
url() 不是图床域名、用单引号、data:url('…')拆除整个元素

其中两种换个写法就能保留:-50% 写成 -50.001%;单独加括号的部分,外面再套一层 calc()。

url() 只认 4 个图床域名:mmbiz.qpic.cn、mmecoa.qpic.cn、wx.qlogo.cn、res.wx.qq.com。用外链图片之前,先传到公众号图床。

3.3 SVG 动画:animate 和 set 只认 14 个属性名

属性名服务器iOSAndroidHarmonyOS NEXT
width height✅✅✅✅
d✅✅✅✅
stroke-dashoffset✅✅✅✅
fill opacity visibility✅✅✅✅
x y r points✅✅✅—
stroke-width stroke-linecap✅✅✅—
名单外,如 cx stroke display❌ 整个动画元素被删———

— 表示这一项没有在 HarmonyOS NEXT 手机上单独测过。

第 14 个是 transform,服务器保留;位移、缩放、旋转用 animateTransform。名单区分大小写,大小写变体、实体、加空格、加命名空间前缀都会被删。animateTransform、animateMotion 不受这份名单限制。

编辑器里在动不算数,保存后再看一次。

3.4 触发值:服务器全部保留,手机上不一定触发

begin 的值服务器iOSAndroidHarmonyOS NEXT
click✅✅✅✅
touchstart touchmove✅✅✅✅
touchend✅✅✅—
mouseover mouseout✅✅✅✅
dblclick✅✅✅✅
focus blur✅⚠️ 不可靠✅✅
tap✅❌❌—
click-0.1s✅❌❌—
xx.click(引用其他元素)✅❌❌—

所以点击用 click,不用 tap。

3.5 HTML 和 SVG:会被删的

类别名称结果
HTML 元素script style link meta base title input textarea连同内容删除
HTML 元素button details iframe video audio form object marquee math拆除,只留内容
SVG 元素style script title feImage删除
SVG 元素linearGradient mask clipPath filter pattern use marker保留,但 id 被删,引用不到
属性id on* contenteditable xlink:href xml:base删除

样式写在标签上,不要依赖 id 和 <style>。

3.6 四个等级

每条规则都标了「保质期」:

等级含义
稳定由服务器的固定规则或网页标准决定,各端一致,可以长期放心用
看系统版本较新的 CSS,读者手机的系统或内核要达到一定版本
平台有差异只有部分平台支持,或 iOS、Android 表现不同
随微信改版可能变化依赖微信自己的实现,微信改版时最该留意

关键位置的内容,优先用「稳定」的写法。

完整白名单和检查 skill 输入查看码后可见。

完整版

输入付费后拿到的密码,打开这一期的完整白名单和检查 skill。