首页/新闻资讯/正文详情

ESP32-S3 Mini与C3 Mini采购指南:PSRAM、USB选型避坑

发布时间:2026/11/4 1:07:44 来源:云帆数科 栏目:资讯中心
ESP32-S3 Mini与C3 Mini采购指南:PSRAM、USB选型避坑
1. 先搞清楚你要买的是哪一类板子1.1 两块板子的定位差异ESP32-S3 Mini 和 ESP32-C3 Mini 这两块板子放在购物车里长得差不多价格也接近但它们的定位其实完全不同。我见过太多人下单前没想清楚板子到手焊完排针才发现外设对不上只能重新买。ESP32-C3 Mini 的核心是单核 RISC-V 架构主频 160MHz没有原生 USB OTG只有 USB Serial/JTAG 调试接口。它的优势是便宜、功耗低、Wi-Fi 和蓝牙 LE 都齐全适合做传感器节点、开关控制、简单的蓝牙配网设备。你要是做一个温湿度上报的小终端C3 Mini 完全够用成本还能压下来。ESP32-S3 Mini 则是双核 Xtensa LX7主频 240MHz带原生 USB OTG支持 PSRAM 扩展还多了向量指令用于 AI 加速。它的定位是边缘计算、摄像头图像处理、USB 设备模拟、语音交互这类需要算力和内存的场景。S3 Mini 比标准 S3 开发板小一圈引脚少一些但核心能力没砍。简单说C3 是够用就好的性价比路线S3 是留足余量的扩展路线。你如果只是点个灯、读个传感器、连个 Wi-FiC3 就够了但如果你要跑 MicroPython 加摄像头、要做 USB HID 设备、要接 I2S 音频输出那必须上 S3。1.2 从热搜词看真实需求热搜词里出现了“esp32-s3 蓝牙配对”“esp32-s3 micropython”“esp32-c3 i2s输出”“esp32-s3连接wifi接收tcp消息”这些说明大家关注的点集中在无线连接、脚本开发和音频外设上。还有“ros2 humble串口桥接esp32小车”“蓝牙app控制esp32”这类说明不少人在做机器人控制和移动端交互。这些需求对板子的要求是不一样的。蓝牙配对和 Wi-Fi 收 TCP 消息C3 和 S3 都能做但 MicroPython 跑摄像头、I2S 输出音频、USB 模拟设备这些就对内存和外设有硬性要求了。所以买之前先把自己的项目需求列清楚再对照板子参数别看着便宜就下单。1.3 一张采购决策表需求场景推荐型号关键理由温湿度传感器上报C3 Mini单核够用功耗低成本低蓝牙配网开关C3 MiniBLE 5.0 支持完善引脚少够用MicroPython 脚本开发S3 MiniPSRAM 支持内存充裕USB HID 键盘/鼠标模拟S3 Mini原生 USB OTGC3 不支持I2S 音频输出S3 Mini外设资源更丰富DMA 通道多摄像头图像传输S3 Mini向量指令加速PSRAM 必备ROS2 小车串口桥接两者均可看是否需要 USB 直连简单 TCP 客户端C3 MiniWi-Fi 稳定资源足够这张表是我自己踩过坑之后总结的你可以直接对照自己的项目勾选。如果你还在犹豫那就选 S3 Mini因为它的能力上限更高后面想扩展不用换板子。2. PSRAM 这个参数到底怎么看2.1 PSRAM 是什么为什么它重要PSRAM 全称 Pseudo Static RAM中文叫伪静态随机存储器。你可以把它理解成给单片机外挂的一块“内存条”。ESP32-S3 内部有 512KB SRAM听起来不少但跑 MicroPython 或者图像处理的时候这点内存很快就见底了。举个例子你用 S3 接一个 OV2640 摄像头拍一张 JPEG 图片大概 20KB 到 50KB但解码成 RGB565 之后一张 320x240 的图就要 150KB。如果你要双缓冲或者做图像处理内部 SRAM 根本不够。这时候 PSRAM 就派上用场了常见的规格有 2MB 和 8MB 两种。C3 Mini 不支持外挂 PSRAM这是它和 S3 最本质的区别之一。所以如果你看到某个项目需要“PSRAM 必备”那就直接排除 C3。2.2 怎么确认板子带不带 PSRAM买的时候商品标题里通常会写“N4R2”“N8R8”这样的编码。这里的 N 代表 FlashR 代表 PSRAM。N4R2 就是 4MB Flash 2MB PSRAMN8R8 就是 8MB Flash 8MB PSRAM。如果只写 N4 或者 N8那大概率没有 PSRAM。我自己的经验是如果你要做音频缓冲、图像处理、MicroPython 大脚本直接上 N8R8。2MB PSRAM 跑 MicroPython 加个摄像头就紧张了8MB 才比较从容。价格差通常也就十几块钱没必要省这个。还有一个坑有些板子标了 PSRAM但实际焊接的是拆机件或者降频版本跑起来不稳定。建议买之前看看买家秀里有没有人跑过内存测试或者自己到手后用esp32.sram()之类的命令确认一下可用内存。2.3 PSRAM 使用注意事项PSRAM 虽然好用但有几个限制你得知道。第一PSRAM 的访问速度比内部 SRAM 慢大概慢 3 到 5 倍所以中断服务程序里不要放 PSRAM 变量。第二DMA 缓冲区如果放在 PSRAM需要确认 DMA 控制器是否支持S3 的部分 DMA 通道可以访问 PSRAM但不是全部。第三MicroPython 默认会把堆放在 PSRAM但你需要确认固件版本是否开启了 SPIRAM 支持。提示买 S3 Mini 的时候优先选带 PSRAM 的版本哪怕暂时用不上后面扩展会省很多事。3. USB 接口的坑比你想象的多3.1 原生 USB 和 USB 转串口的区别这是选购时最容易搞混的地方。ESP32-S3 有两个 USB 接口一个是原生 USB OTG可以直接模拟键盘、鼠标、U盘、MIDI 设备另一个是 USB Serial/JTAG用于烧录和调试。而 ESP32-C3 只有 USB Serial/JTAG没有原生 OTG。很多便宜的 S3 Mini 板子只引出了一个 USB 口通过 CH340 或者 CP2102 转串口芯片连接。这种板子虽然也能烧录但你用不了 USB HID 功能。如果你要做“USB 控制”“USB 抓包”“USB 模拟 SPI”这类项目必须确认板子引出了原生 USB 引脚GPIO19 和 GPIO20。我见过有人买了 S3 Mini 想做 USB 键盘结果发现板子上只有转串口芯片原生 USB 引脚没引出来只能飞线。飞线不是不行但稳定性差很多尤其是 USB 2.0 高速信号线长了就容易掉设备。3.2 怎么判断板子有没有原生 USB看商品详情页的引脚图。如果 GPIO19 和 GPIO20 被标为 USB_D- 和 USB_D并且引出了独立的 USB 接口或者焊盘那就是原生 USB。如果只看到一个 USB 口旁边写着“烧录/调试”那大概率是转串口的。还有一种情况板子上有两个 Type-C 口一个标 UART一个标 USB。这种就是原生 USB 和转串口都引出了用起来最方便。价格会贵几块钱但值得。3.3 USB 供电和电流问题USB 口还有一个容易被忽略的问题供电能力。ESP32-S3 在 Wi-Fi 发射瞬间电流可以到 300mA 以上如果板子上还有摄像头、屏幕、传感器总电流可能超过 500mA。有些电脑的 USB 口只能提供 500mA这时候就会出现掉电重启、烧录失败、设备识别不稳定。我的做法是调试阶段用带独立供电的 USB Hub或者直接用 5V 电源适配器供电。尤其是跑摄像头和 Wi-Fi 同时工作的时候USB 口供电不足是玄学问题的头号来源。注意如果你遇到“no usb fet was found”“stlink usb communication error”这类报错先换一个 USB 口或者换一根线再检查供电。4. 一张可核对的采购单4.1 采购单模板下面这张表是我自己每次买板子都会核对的清单你可以直接抄。核对项具体要求备注型号ESP32-S3 Mini 或 C3 Mini确认是 Mini 不是标准版芯片ESP32-S3 或 ESP32-C3注意有些板子标 S3 实际是 S2Flash至少 4MB推荐 8MB影响固件和文件系统大小PSRAMS3 推荐 8MBC3 无图像/音频项目必备原生 USBS3 需确认引出 GPIO19/20C3 无原生 USBUSB 转串口CH340/CP2102/FT231X确认驱动可用引脚数确认引出所需 GPIOMini 版引脚较少天线板载陶瓷天线或 IPEX需要外接天线选 IPEX供电5V Type-C 或排针确认最大电流排针是否预焊未焊需自己动手价格对比三家低于均价太多要警惕4.2 采购渠道和避坑国内买 ESP32 模组和开发板渠道主要有几家官方旗舰店、大型电子元器件商城、以及一些做开发板的工作室。官方渠道贵一点但品质稳定工作室的板子便宜但批次差异大。我自己的策略是核心板买官方或者口碑好的工作室扩展模块可以买便宜的。比如 S3 Mini 核心板买带 PSRAM 的官方版本传感器模块、屏幕、摄像头可以买第三方这样整体成本可控稳定性也有保障。还有一个细节买的时候看清楚是“开发板”还是“模组”。模组是贴片封装需要自己画底板开发板是已经做好外围电路的成品。新手直接买开发板别买模组。4.3 到货后的验货流程板子到手之后别急着焊排针。先做这几件事用万用表测一下 3.3V 和 5V 对地有没有短路。插 USB看电脑能不能识别串口。用esptool.py flash_id读一下 Flash 和 PSRAM 信息。烧一个最简单的 Blink 程序确认 GPIO 正常。如果带 PSRAM跑一个内存测试确认容量和稳定性。这几步花不了十分钟但能避免后面调试时把硬件问题当成软件问题。我吃过这个亏一块板子焊完排针才发现 PSRAM 是坏的退换都麻烦。5. 开发环境搭建的几条捷径5.1 Arduino 环境的国内源配置Arduino IDE 装 ESP32 支持包默认从 GitHub 下载国内速度很慢。解决办法是配置国内镜像源。在“首选项”的“附加开发板管理器网址”里填入国内镜像地址然后在开发板管理器里搜索 esp32 安装。具体操作打开 Arduino IDE文件 - 首选项在“附加开发板管理器网址”里粘贴国内源地址。然后工具 - 开发板 - 开发板管理器搜索“esp32”选择版本安装。安装完成后在开发板列表里就能看到 ESP32-S3 Dev Module 和 ESP32-C3 Dev Module。提示安装过程中如果卡在“下载 esp32-3.3.11.zip”可以手动下载离线包放到对应的 staging 目录里再重新安装。5.2 MicroPython 固件烧录MicroPython 官方固件在官网下载页面可以找到选择对应的型号和 PSRAM 配置。烧录用 esptoolesptool.py --chip esp32s3 --port /dev/ttyUSB0 erase_flash esptool.py --chip esp32s3 --port /dev/ttyUSB0 write_flash -z 0x0 firmware.bin烧完之后用串口工具连接波特率 115200就能看到 MicroPython 的 REPL 提示符。如果进不去 REPL检查一下是不是板子进入了下载模式或者 Flash 起始地址不对。C3 的烧录类似把--chip换成esp32c3就行。注意 C3 的 USB Serial/JTAG 口在烧录时可能需要按住 BOOT 键再插 USB。5.3 串口权限和驱动问题Linux 下串口权限问题很常见每次都要 sudo 很烦。解决办法是把用户加入 dialout 组sudo usermod -a -G dialout $USER然后重新登录生效。Windows 下主要是驱动问题CH340 需要装 CH341SER 驱动CP2102 需要装 VCP 驱动FT231X 需要装 FTDI 驱动。装完驱动如果还是识别不到换一根数据线试试有些线只有充电功能没有数据功能。注意USB 线材质量对烧录稳定性影响很大劣质线会导致烧录中途失败或者设备反复掉线。6. 常见问题排查实录6.1 烧录失败和识别不到串口这是最高频的问题。排查顺序如下换 USB 线和 USB 口优先用主板后置 USB 口。检查驱动是否安装设备管理器里有没有黄色感叹号。确认板子是否进入下载模式有些板子需要按住 BOOT 再按 RESET。检查串口是否被其他程序占用比如串口监视器没关。降低烧录波特率从 921600 降到 115200 试试。如果以上都不行用万用表测一下 USB 口的 D 和 D- 有没有虚焊尤其是自己焊过排针的板子。6.2 Wi-Fi 连接不稳定Wi-Fi 连不上或者频繁掉线通常有几个原因天线匹配没做好、供电不足、路由器信道干扰、或者固件里 Wi-Fi 省电模式没关。我的做法是在代码里关闭 Wi-Fi 省电模式WiFi.setSleep(false)然后确认天线区域没有铺铜或者金属遮挡。如果是 IPEX 外接天线确认天线座子焊接良好天线频率匹配 2.4GHz。6.3 PSRAM 识别不到买了带 PSRAM 的板子但代码里用不了先确认固件是否开启了 SPIRAM 支持。Arduino 里需要在开发板设置里选择“PSRAM: OPI PSRAM”或者“QSPI PSRAM”具体看板子用的是哪种。MicroPython 需要下载带 SPIRAM 的固件版本。如果设置都对还是不行用esp_spiram_test()或者heap_caps_print_heap_info()看看 PSRAM 有没有被初始化。有些板子的 PSRAM 引脚和 Flash 引脚复用需要正确的启动配置。6.4 USB 设备模拟不成功S3 做 USB HID 设备代码烧进去之后电脑没反应检查这几点确认用的是原生 USB 口而不是转串口口确认 USB 描述符配置正确确认 GPIO19 和 GPIO20 没有被其他功能占用确认 USB 线是数据线。还有一个容易忽略的点USB 设备枚举需要一定时间代码里要加延时不能一上电就发送数据。6.5 常见问题速查表现象可能原因解决方法识别不到串口驱动未装/线材问题装驱动换线换口烧录失败未进下载模式按住 BOOT 再复位Wi-Fi 掉线省电模式/供电不足关省电独立供电PSRAM 不可用固件未开启/配置错误选对 PSRAM 类型USB 设备无反应用了转串口口换原生 USB 口板子发热严重短路/供电过高立即断电检查蓝牙配对失败固件不支持/天线问题更新固件检查天线7. 从采购到跑通的第一条程序7.1 最小系统验证板子到手、环境装好之后先跑一个最小程序确认整条链路通畅。Arduino 下就是 Blinkvoid setup() { pinMode(2, OUTPUT); } void loop() { digitalWrite(2, HIGH); delay(1000); digitalWrite(2, LOW); delay(1000); }MicroPython 下更简单from machine import Pin import time led Pin(2, Pin.OUT) while True: led.value(not led.value()) time.sleep(1)能跑通说明烧录、供电、GPIO 都正常。然后再逐步加 Wi-Fi、加传感器、加 USB 功能每加一个功能验证一次出问题容易定位。7.2 Wi-Fi 连接测试Wi-Fi 测试代码#include WiFi.h void setup() { Serial.begin(115200); WiFi.begin(SSID, PASSWORD); while (WiFi.status() ! WL_CONNECTED) { delay(500); Serial.print(.); } Serial.println(WiFi.localIP()); } void loop() {}如果能打印出 IP 地址说明 Wi-Fi 正常。如果一直点检查 SSID 和密码确认路由器是 2.4GHz 频段ESP32 不支持 5GHz。7.3 USB 设备测试S3 做 USB HID 键盘测试#include USB.h #include USBHIDKeyboard.h USBHIDKeyboard Keyboard; void setup() { Keyboard.begin(); USB.begin(); } void loop() { Keyboard.println(Hello); delay(1000); }烧录后拔掉转串口线插原生 USB 口电脑应该能识别出一个键盘设备并且每秒输入一次 Hello。如果没反应检查开发板设置里 USB Mode 是否选对了。7.4 采购单最终核对最后再走一遍采购单型号对不对、Flash 和 PSRAM 够不够、原生 USB 有没有、驱动能不能装、供电足不足。这几项确认完基本就不会买错了。我自己的习惯是买之前把项目需求写下来对照参数表勾选买回来先验货再焊排针。这套流程走下来翻车概率很低。希望这张采购单能帮你少走点弯路。

相关推荐

Arduino DHT11+Nokia 5110微型气象站实战搭建
Arduino DHT11+Nokia 5110微型气象站实战搭建

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

ESP32-S3全栈实战:BLE GATT与JSON打造桌面状态显示设备
ESP32-S3全栈实战:BLE GATT与JSON打造桌面状态显示设备

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

嵌入式RTOS内存管理实战:malloc/free风险与监控方案
嵌入式RTOS内存管理实战:malloc/free风险与监控方案

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

深度揭秘:Hermes Agent如何构建企业级多智能体通信架构
深度揭秘:Hermes Agent如何构建企业级多智能体通信架构

深度揭秘:Hermes Agent如何构建企业级多智能体通信架构 在当今分布式AI系统日益复杂的背景下,多智能体协作的效率直接决定了系统的整体性能。Hermes Agent作为一款面向企业级应用的开源多智能体框架,通过创新的消息传递机制和智能协调协议&a… · 2026/11/4 1:46:00

3个高级配置技巧:解锁Hermes Agent的隐藏潜能
3个高级配置技巧:解锁Hermes Agent的隐藏潜能

3个高级配置技巧:解锁Hermes Agent的隐藏潜能 你是否曾想过,为什么同样的Hermes Agent在不同开发者手中表现差异如此之大?当其他人轻松处理复杂任务时,你的Agent却频繁遇到上下文限制或响应迟缓的问题。这并非模型能力不足&#… · 2026/11/4 1:46:00

双态持久化记忆系统:重新定义AI助手的长时记忆范式
双态持久化记忆系统:重新定义AI助手的长时记忆范式

双态持久化记忆系统:重新定义AI助手的长时记忆范式 在传统AI助手领域,"健忘症"一直是制约用户体验的核心瓶颈。每个会话都是孤立的,AI无法记住用户的偏好、工作习惯或历史约定,导致重复的配置和低效的交互。Hermes Age… · 2026/11/4 1:46:00

Hermes Agent:你的AI协作伙伴,如何让复杂任务变得简单?
Hermes Agent:你的AI协作伙伴,如何让复杂任务变得简单?

Hermes Agent:你的AI协作伙伴,如何让复杂任务变得简单? 你是否曾为管理多个AI助手而烦恼?想象一下,你需要同时处理Telegram上的客户咨询、Discord的技术讨论,还要协调团队看板上的开发任务。每个平台都需要… · 2026/11/4 1:46:00

FastAPI API文档定制指南:4 步做出带品牌色的 Swagger 与 ReDoc 界面
FastAPI API文档定制指南:4 步做出带品牌色的 Swagger 与 ReDoc 界面

FastAPI API文档定制指南:4 步做出带品牌色的 Swagger 与 ReDoc 界面 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi 做 Fa… · 2026/11/4 1:46:00

计算1!+ 2!+ 3! + 4! +···+10!(1到10的阶乘)
计算1!+ 2!+ 3! + 4! +···+10!(1到10的阶乘)

//初始化 int i 0; int j 1; int ret 1; int sum 0; //嵌套for循环 for (i 0; i < 10; i) //累计1到10 {for (j 1; j < i; j) //每次数的阶乘{ret ret * j;}sum sum ret; //计算每个数的阶乘相加 } printf("%d", sum);int i 1; int ret 1; int sum … · 2026/11/4 1:45:00

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

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

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

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

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

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

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进&#xff0c;技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里&#xff0c;先后经历了三次重大技术栈迁移&#xff0c;每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策"&#xff1a;Jev 到底在解决什么问题大多数人第一次接触大模型&#xff0c;脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样&#xff0c;它给你一段描述&#xff1b;你让它写个周报&#xff0c;它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用"&#xff0c;这件事我前后折腾了小半年。标题里说的这台 Mac mini M6&#xff0c;是我们这次讨论的目标平台&#xff0c;具体到手规格以实物为准&#xff1b;但下面这套推算方法和实测思路&#xff0c;对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

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

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

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

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

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

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码