news 2026/9/4 9:52:22

小程序服务商评测指南:从选型到验收的完整方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小程序服务商评测指南:从选型到验收的完整方法

2026 年做小程序找哪家公司,本质不是一个排名问题,而是一个交付链路问题。热门小程序开发服务商评测很容易被价格和案例图带偏,最后选出一家“看起来很厉害,但根本没法接住需求”的团队。真正值得做判断的,是服务商能否看懂微信小程序生态的规则、能否把账号与代码资产交付清楚、能否在验收和上线阶段帮你兜住崩溃和合规风险。这篇文章要拿掉的,是“哪家名气大”这个无效问题,换成一套从需求评审到线上验收都可用的小程序服务商评测方法。

下面会先拆解 2026 年做小程序的典型业务场景,再给出筛选服务商的核心维度,然后用微信小程序真实项目里最容易出问题的登录、分包、路由、版本更新、消息推送和接口签名作为验收重点,最后整理成一份可以直接带到项目启动会上的选型与验收清单。

1. 做小程序之前,先把“找哪家公司”拆成三个问题

1.1 小程序不是一个手机网页,而是微信规则系统里的一个应用

很多非技术出身的业务方会把小程序理解成“一个打开很快的页面”。但小程序和普通 H5 最大的区别,是小程序运行在微信容器中,它的页面结构、分包加载、授权登录、消息下发、版本发布和合规校验,都要遵守微信公众平台的规则。

这里有一个容易被忽略的常识:小程序不是你有服务器就能上线。你还需要注册小程序账号、配置合法域名、完成各种权限校验,页面里所有能跳转的路径都必须和app.json里声明的页面完全匹配。任何一个环节缺失,都会出现“本地调试正常、真机一团乱”的情况。

所以“找哪家公司”真正要问的,不是它的官网好不好看,而是它能不能从代码层、配置层和发布层同时把小程序交付完整。

1.2 热门服务商可以按能力分成四类,不能只按价格比

每家公司的报价差异很大,不代表贵的一定靠谱,也不代表便宜的一定能复制。可以把服务商分成四类,分别判断:

  • 大型数字营销公司或全案代理:优势在品牌、视觉、营销活动策划,短板通常是账号体系、接口安全和迭代速度。
  • 专业小程序定制开发团队:优势在交付速度、前后端一体、能处理支付和复杂业务逻辑,适合有明确商业模式的项目。
  • SaaS 模板 / 商城系统服务商:优势在成本和标准功能,速度快、界面统一,缺点是不能深改、代码不一定交付、账号主体可能被绑定。
  • 云厂商生态服务商 / 低代码平台团队:优势在云资源和运维配套,很多服务器、存储、短信能力能一起包办,但复杂业务仍然需要二开。

一个常见的错误是把四类服务商放在同一张价格表里横向比较。全案公司报价高,因为它还承担了营销策略和设计;SaaS 模板报价低,因为它是多租户复用,你的个性化需求并不在费用里。2026 年选型时,更重要的是先判断你的项目属于“快速验证型”还是“持续运营型”。

1.3 2026 年选型新增了哪些必考题

小程序的需求已经从“能展示、能下单”变成了“能登录、能履约、能推送、能裂变”。做小程序找服务商时,不能只看对方做过多少模板,还要看它是否理解下面几个高频技术点:

  • 获取微信登录用户信息失败时,怎么排查wx.loginappidsecret和域名白名单。
  • 小程序 A 跳转到小程序 B,微信公众平台上需要做什么关联和配置。
  • 分包页面路径写错,为什么 URL Scheme 始终拉不起目标页面。
  • 顶部导航栏在不同手机型号上的高度适配。
  • 正式版本如何用wx.getUpdateManager提示用户更新,而不是每次等微信缓存自然失效。
  • 小程序后端接口如何做参数签名,避免请求被伪造和篡改。

与其去找一家“什么都能做”的公司,不如找一家能把这几个问题在项目启动前就讲清楚的公司。能把技术风险提前摆到桌面上的服务商,后面翻车的概率要小很多。

2. 服务商评测的核心维度与筛选节奏

2.1 一张可打分的小程序服务商评测表

下面是整理过的五个评测维度,每一项都可以直接打分,也可以用于后续对比。打分不追求绝对准确,目的是让不同服务商的差异浮出水面。

评测维度检查重点参考权重说明
需求理解是否能画出核心用户路径,能否区分 MVP 和二期功能25%理解不到位,合同写得再厚也会返工
技术交付能力小程序端、后端、数据库、第三方支付、消息推送和部署是否一体解决25%只交前端代码,后面接口对接会非常痛苦
账号与资产边界是否明确小程序账号、代码仓库、服务器、域名、证书归谁所有20%决定项目结束后你是否还有自主权
验收与运维保障是否提供测试用例、验收环境、日志、备份、线上问题响应方案20%小程序上线不是终点,运营才是
费用与结算方式报价是否按功能清单拆解,是否分期,是否包含一年内维护10%一口价最容易在需求变更时扯皮

这个表格不是选型标准答案,但可以帮你过滤掉只靠嘴说“没问题”的服务商。真正专业的团队会在第一阶段先问你的账号主体、目标用户和业务闭环,而不是急着报价。

2.2 用三轮筛选代替一次性比价

第一轮叫资料筛选。让对方提交公司资质、过往小程序案例、团队角色说明和一份初步时间排期。重点看有没有产品经理和测试人员,而不只是程序员。很多小程序项目失败,不是开发写不出来,而是没有人梳理需求边界。

第二轮叫方案评审。把你要做的核心功能整理成 10 到 20 个问题,例如“用户登录失败怎么办”“后台订单导出用什么格式”“打开分包页面要传哪些参数”。不需要对方当场写代码,但需要对方给出清晰的实现思路。这一轮能看出它是不是真的理解微信生态。

第三轮叫小样验证。如果项目复杂度较高,可以约一个短周期小需求,比如做一个单页面表单提交,走完“开发-提审-上线”全流程。小样不一定要完整,但它能真实反映服务商的沟通效率、代码质量和上线配合度。这一轮的花费比后期返工低很多。

2.3 评估时要区分开发环境、体验版和正式版

选型阶段有一个容易被忽略的现场问题:对方展示 demo 时,你要问清楚它跑在哪个环境。

  • 开发环境:代码还在本地,功能可能写了一半,调通不等于可用。
  • 体验版:最接近真机,但只对体验成员开放,数据也可能连的是测试库。
  • 正式版:线上真实数据,任何改动都直接影响用户。

如果服务商只给你看开发工具里的模拟器界面,说明它还没有经历完整的真机验证。一个成熟的小程序交付流程,至少应该在体验版里先跑通登录、订阅消息、支付回调、分销关系绑定等关键链路,再走提审发布。

3. 需求写不清楚,再专业的服务商也交付不对

3.1 小程序需求文档至少应该包含这些字段

很多需求沟通是从“我想要一个类似某商城的程序”开始的。这句话信息量很低,服务商只能在猜测中报价。为了避免需求被反复改写,最好在项目启动前自己先整理一版需求条目。

下面是一个可以复制使用的需求条目模板,实际使用时按行业替换页面名称和逻辑即可:

模块名称:登录 用户角色:未登录用户、已登录用户 用户场景:用户打开小程序,想查看购物车并完成下单 核心功能: 1. 用户进入小程序后,通过 wx.login 获取临时 code 2. 后端调用 code2Session 换取 openid 和 session_key 3. 已有用户直接登录,新用户自动创建账号 4. 登录失败时提示重试,并记录失败日志 验收标准: - 同一微信号在测试环境重复登录,不会生成重复账号 - token 过期后,用户再次操作会跳转到登录逻辑 - 断网、微信登录未授权、接口超时均有明确提示

需求条目不需要一开始就写得很技术,但一定要包含“谁在用、要完成什么、怎么算做完”三个信息。服务商拿到这样的需求后,才能给出可评审的功能清单。

3.2 用页面清单和接口清单约束开发边界

小程序项目最常见的失控原因是需求边界不清晰。功能从一个变成三个,页面从一个变成五个,报价却还停在最初版本。更合理的做法是把交付范围收口到两张清单,并在合同附件中归档。

页面清单示例:

页面路径页面名称主要功能状态
pages/home/index首页展示商品、活动入口、公告MVP
pages/order/list订单列表查看订单、取消订单MVP
packageA/pages/refund/index退款详情申请退款、上传凭证二期

接口清单示例:

接口名称请求方式入参返回结果
获取手机号POST /api/user/phonecodephone 脱敏信息
创建订单POST /api/order/createskuId, quantity, addressIdorderId, paymentParams
退款申请POST /api/refund/applyorderId, reasonrefundId

页面清单决定用户能看到什么,接口清单决定业务能否闭环。只要这两张表在合同里写得清楚,后续服务商提“这里需要一个新接口”时,你就知道是需求变更而不是原始报价漏项。

3.3 行业不同,需求优先级完全不同

商城类小程序最核心的是商品 SKU、购物车、订单状态机、库存扣减和支付回调;门店类小程序更重视预约时间、核销码和员工权限;内容社区类小程序则更依赖富文本编辑、审核过滤和消息触达。

找开发服务商前,先确认自己的行业属性。不要拿电商模板硬套到预约业务上,否则到了开发中后期会发现每一个页面都像“改出来的”,而不是为业务设计的。专业服务商的价值之一,就是能提前指出模板字段和你的真实业务之间的差异。

4. 技术路线和交付边界,要提前写进合同

4.1 原生开发、uni-app、Taro 和低代码平台怎么选

小程序开发的技术路线直接决定后续能不能扩展到支付宝、百度等生态,也决定源代码是否容易维护。需要先理解几种方案的差异:

技术路线适用场景主要优势需要警惕的点
微信原生小程序只做微信端,追求稳定官方支持最及时,性能风险低若以后要跨端,代码不能直接复用
uni-app需要同时发布微信、支付宝、H5一套代码跨多端原生能力和新功能适配可能滞后
Taro团队熟悉 React,要去多端React 语法,生态成熟自定义原生组件时仍需原生代码
低代码平台快速验证、内部工具上线快,运营可改复杂逻辑受限,账号资产归属需确认

不要听到“用 uni-app 开发”就认为一定好。如果业务只做微信端,原生小程序往往更直接,官方更新一点就能跟一点;如果未来明确要做多端,再考虑跨端框架。选型时还要确认代码交付格式,是源码交付还是只能在对方平台后台里改。

4.2 账号、服务器、代码仓库和域名归属要写到合同里

这是全网小程序开发纠纷里最集中出现的地方。项目做完应该交给你哪些东西,必须在合作前明确:

  • 小程序 AppID 是否注册在你自己的主体下。
  • 小程序后台管理员和操作员账号是否绑定你们公司员工的微信。
  • 后端源码、管理后台源码、数据库脚本是否完整交付。
  • 云服务器、对象存储、短信服务是否由你付费并掌握控制台权限。
  • 域名是否备案在你们主体名下,HTTPS 证书是否由你们续期。
  • 代码仓库是否迁到你的企业账号下,管理员权限是否移除服务商人员。

很多业务方在项目验收后发现,测试接口域名还是服务商的,服务商一旦停服,整个小程序连登录都做不了。这个问题不是代码问题,是资产归属问题,一定要在合同里写清楚。

4.3 接口签名、密钥和推送方案不能等上线前再定

开发过程中还有一个高频风险被拖到最后:服务端接口没有签名验证。小程序如果只是展示公开内容,风险相对低;一旦涉及下单、退款、提现、改手机号,接口就必须验证请求是否来自你自家小程序,是否被恶意刷请求。

接口签名不在微信侧强制,但应该由服务商在前后端约定好。常见做法是:登录后下发 token,业务请求在 header 里带Authorization,敏感参数会按指定规则拼接后计算sign,服务端校验时间戳、随机数和签名。2026 年的小程序项目里,接口签名不是加分项,而是基础安全项。

另一个容易拖到上线的是订阅消息推送方案。微信小程序已经不支持长期自由推送模板消息给用户,只能通过用户主动订阅获取一次性或长期订阅机会。服务商必须提前说清楚:

  • 每个模板消息的触发场景是什么。
  • 用户何时会点击订阅按钮。
  • 后端如何保存订阅状态。
  • 推送失败后是否回退短信或站内通知。

如果功能都开发完了才发现没有订阅入口,后期补推送功能就要重新发版和提审,成本明显更高。

5. 验收小程序时,按微信生态的真实链路逐项检查

5.1 登录链路不能只看“能不能拿到用户昵称”

小程序登录是一个完整链路:用户打开端、wx.login拿到临时 code、业务后端拿 code 换 openid、服务端建立登录态并返回 token。验收时不要只点一次“微信一键登录”,要看失败分支。

一个可以参考的服务端响应结构如下:

{ "success": true, "code": "0", "message": "login success", "data": { "token": "eyJhbGciOiJIUzI1NiJ9", "expireAt": 1780000000000, "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", "isNewUser": false } }

验收时需要确认几个点:

  • appid是否是正式主体下的小程序,而不是服务商测试账号。
  • code2Session所属的后端接口是否禁止在浏览器直接请求,避免泄露secret
  • token 是否有过期续期机制。
  • 清掉小程序缓存后重新打开,用户数据是否还能正常恢复。
  • 把手机切换到无网或弱网环境,界面是否有明确提示,而不是一直转圈。

5.2 路由、分包、导航栏和小程序间跳转要逐项核对

微信小程序的页面路由依赖app.json中的注册信息。页面路径一旦写错,wx.navigateTowx.redirectTowx.switchTab都会失败。验收时让服务商整理一份路由跳转关系表,对照实际点击逐条访问。

拿到源码后,也可以用一个小脚本自动检查页面文件是否都注册过,下面示例说明思路:

// check-pages.js 用于粗略校验 pages 和 subPackages 是否都存在于 app.json const fs = require('fs'); const appJson = JSON.parse(fs.readFileSync('miniprogram/app.json', 'utf8')); const allPages = [ ...appJson.pages.map((p) => `/${p}`), ...(appJson.subPackages || []).flatMap((sub) => sub.pages.map((p) => `/${sub.root}/${p}`) ) ]; console.log('页面总数:', allPages.length); console.log(allPages.join('\n'));

实际项目中,工具脚本只能做静态检查,真正的页面跳转还要依赖真机操作。验收时至少跑通下面几类常见场景:

  • 首页进商品列表,再进详情页,最后返回首页,路径不异常。
  • tabBar 页面不能使用wx.navigateTo跳转,否则会报错。
  • 分包页面的路径是否以分包根目录开头。
  • 小程序 A 跳小程序 B 时,目标 AppID、页面路径和 query 是否符合约定。
  • 明文 URL Scheme 拉起的目标分包路径是否已经随正式版发布,并检查路径是否带分包根前缀。

微信小程序的顶部导航栏高度在 iPhone 刘海屏和普通安卓机上不一致。不要自己写死一个64px。更稳妥的方案是用系统提供的navigationStyle,或通过wx.getMenuButtonBoundingClientRect获取胶囊按钮位置做自定义导航栏适配。服务商如果直接在代码里写死高度,换一台全面屏手机就可能遮挡。

5.3 版本更新和订阅消息要用真机验证

小程序发版后,用户端并不会瞬间看到新版本,这是微信的缓存机制。很多服务商交付后不处理更新逻辑,常常导致“后台改了 bug,用户手机上还是老版本”。

建议把下面的更新代码作为正式项目的基础逻辑,放在app.js或首页启动逻辑中:

const updateManager = wx.getUpdateManager(); updateManager.onUpdateReady(function () { wx.showModal({ title: '更新提示', content: '新版本已经准备好,是否重启应用?', success(res) { if (res.confirm) { updateManager.applyUpdate(); } } }); }); updateManager.onUpdateFailed(function () { // 新版本下载失败,提示用户删除小程序后重新搜索进入 console.warn('update manager failed'); });

订阅消息要放到用户真实操作场景中验证。比如用户在提交订单后点击“允许提醒”,后端才能拿到 openid 和模板 ID 推送发货通知。验收时要记录订阅次数是否与模板规则一致,不能出现用户只订阅一次,却被反复推送不同类目消息的情况。

5.4 域名、证书和后台管理不能只测接口能通

上线前建议做一次正式环境全链路检查:

  1. request合法域名是否全部配置在小程序后台。
  2. 每个域名是否都支持 HTTPS,证书到期时间。
  3. 后端是否配置了请求日志、错误日志和慢查询日志。
  4. 文件上传是直传云存储,还是经过临时上传接口。
  5. 后台管理是否有独立账号密码或二次验证,而不是共用一个公共管理员。

很多小程序只是在开发工具里取消域名校验就能跑,这不代表生产环境正确。上线前的检查目标,是让一个“什么开发工具都没配”的普通用户也能正常访问。

6. 常见风险与排查路径

6.1 “套模板改皮肤”看起来便宜,后续可能最贵

有些低报价方案本质是给现成模板换色、换 logo。如果业务不需要复杂定制,这种方案可能够用。但要注意,模板意味着每一个字段都是通用的,你不能随意增加业务字段,也无法改变底层页面逻辑。等运营到第二年,想加一个分销员等级,服务商再次报价时,总成本可能超过当初定制开发的费用。

判断是不是模板改皮肤,可以直接问三个问题:

  • 底层代码能不能给到你的仓库。
  • 数据库是否能导出一份独立的初始化脚本。
  • 同一个服务商再做类似项目时,你的项目和其他项目如何隔离数据和流量。

如果服务商含糊其辞,建议谨慎。业务一旦跑起来,你的用户数据、订单数据和关系链数据都会被锁在对方的系统里,换人接手的成本非常高。

6.2 微信生态高频报错的排查路径

下面整理了几个小程序开发服务商交付时最常遇到的问题,同样适合你在验收时直接丢给对方测试:

问题现象常见原因检查方式处理建议
登录后拿不到微信用户信息小程序 appid 配置错误,或code2Session请求域名未配置看后端日志中 code2Session 返回 code,检查小程序后台合法域名换正式 AppID,确认 secret 从后端读取但不打印到前端
页面跳转后白屏页面路径未注册或分包路径写错打开 vConsole 看报错路由,比对app.json按“分包根目录/页面路径”格式修正,并重新上传版本
小程序 A 无法跳小程序 B授权、关联设置、AppID 或 path 配置不完整在触发按钮回调中打印errMsg按微信公众平台后台的关联配置逐项核对,使用正式 AppID 验证
正式版用户仍看到旧界面没有调用wx.getUpdateManager查看用户手机版本号和线上版本对比接入更新提示逻辑,并等待微信缓存自然过期或清缓存
URL Scheme 拉起分包页面失败页面路径漏掉分包根路径,或分包未发布检查拉链 URL 中的 path,再用体验版复现将 path 改为与subPackages中 root 拼接后的完整路径
后台接口报签名错误时间戳、随机数或密钥不一致对比前后端签名生成日志统一参数排序规则,签名密钥只存在服务端

以上每一项都是真实现象,不是模板提示。服务商如果能在前期把这些问题写进测试清单,说明它有完整交付经验。

6.3 开发中途换人,项目能不能接得住

小程序项目交接不比传统网站,涉及微信后台权限、云资源、版本管理、第三方支付参数等多层账号。一个很实用的避险办法,是要求服务商在项目开始时建立一份资产登记表,里面包含:

  • 小程序 AppID、体验版二维码、正式版版本号
  • 后端项目 Git 地址和分支说明
  • 数据库连接方式和备份策略
  • 第三方支付商户号和回调配置地址
  • 消息推送模板 ID 和触发场景
  • 服务器登录受限账号、日志位置、部署脚本

这份文档应该随项目一起维护,并在交付时和源码一起提交。如果服务商连资产登记表都不愿意做,说明内部工程流程可能还停留在“个人开发者”阶段。这种项目一旦遇到核心开发请假或离职,后续维护风险会迅速放大。

7. 可复用的 2026 年小程序选型与验收清单

7.1 选型阶段直接拿去打印的检查表

下面这份清单可以放在候选服务商对比表的旁边。每一条满足打勾,不满足写备注。不要因为某一家案例好看就跳过技术项。

  • 是否提供技术方案文档,而不仅是报价单和案例图。
  • 是否明确列出小程序原生开发、跨端框架或低代码平台的选择原因。
  • 是否说明登录、支付、物流、退款、推送等模块的完整数据流。
  • 是否能提供至少一个同行业、同复杂度案例做技术回访。
  • 是否同意将源码、数据库脚本、账号权限、服务器资源做完整交付。
  • 是否把接口签名、HTTPS、数据备份和日志监控写进方案。
  • 是否提供微信体验版路径,供你在真机上验证核心功能。
  • 是否明确上线后 1 到 3 个月的 bug 修复范围。
  • 是否说明哪些需求属于二期功能,不包含在本次报价内。
  • 是否配置了正式项目群,并且群内包含产品、开发和测试角色。

把这张表发给服务商后,可以从回复质量再判断一轮。愿意逐条回答的服务商,往往比只发“我们都可以做”的服务商更可靠。

7.2 费用和付款节奏建议

不要一次性付全款,也不要用“低价 + 全部做完再付款”考验对方。前一种方式让你的议价能力归零,后一种方式会让服务商把精力放在催款而不是打磨需求上。

可以参考以下付款节点:

  • 合同签订后预付 30% 到 40%,用于启动设计和开发排期。
  • 完成核心页面和接口联调后支付 30%,以功能性演示为准。
  • 体验版通过验收、提审上线后支付剩余尾款。
  • 运维和迭代服务单独按月或按年计费,不要和首版开发费混在一起。

尾款支付前,必须完成源代码、资产表、后台权限和数据库脚本的交接。技术团队做完项目后如果连 Git 权限都不愿意给,说明交付质量很可能没有写在合同里的那么好。

7.3 上线后还要关注的运营与迭代项

小程序不是一次性项目。正式上线后,至少还要在后续运营中关注:

  • 定期更新“隐私保护指引”和其他合规提示。
  • 检查用户反馈入口,收集因微信版本升级导致的新问题。
  • 统计页面访问、转化率、订单支付成功率和推送打开率。
  • 根据业务活动安排节假日版本发布,提前完成提审。
  • 观察服务商是否能在 2 到 4 小时内响应线上故障。

2026 年做小程序,热门榜单只会越来越复杂,不同服务商擅长的行业、价位和交付方式差异越来越大。与其问“哪家强”,不如问“哪家能把我从需求梳理一直服务到上线后稳定运营”。真正值得托付的,不是名气最大的那一家,而是你和他一起把需求边界、验收规则和线上责任都定义清楚的一家。把这份评测标准带去选型现场,会比你临时搜索任何热门名单都更耐用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 9:49:58

MATLAB偏微分方程数值解入门:pdepe、有限差分与PDE Toolbox

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 9:46:11

技术工具集成避坑指南:从选型到生产稳定的完整路径

最近在技术社区里,我注意到一个很有意思的现象:很多开发者,尤其是刚接触新框架或新工具的朋友,常常会陷入一种“高开低走”的循环。一开始兴致勃勃,照着教程把环境搭好,Demo跑通,感觉“神器在手…

作者头像 李华
网站建设 2026/9/4 9:42:23

Mindustry自动化塔防实战手册:本地编译运行Java RTS源码

Mindustry自动化塔防实战手册:本地编译运行Java RTS源码 【免费下载链接】Mindustry The automation tower defense RTS 项目地址: https://gitcode.com/GitHub_Trending/min/Mindustry Mindustry是一款用Java编写的开源自动化塔防RTS游戏。读完本文&#xf…

作者头像 李华
网站建设 2026/9/4 9:40:08

如何拆解无文档技术项目:从代码考古到逆向工程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 9:39:38

基于Vue+SpringBoot的图书馆座位预约系统全栈开发实战与架构解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 9:35:12

四足机器狗关节角度校准:从原理到实践的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华