从文氏桥振荡到有源滤波:低频信号发生与处理电路全流程设计实战
1. 项目概述从“玩具”到“工具”的信号电路实战如果你问一个电子工程专业的学生大学四年里哪门课最让人又爱又恨大概率会听到“模拟电路”这个名字。它不像数字电路那样非0即1清晰明了也不像编程那样可以“运行一下看看”。模电的世界充满了连续的、微妙的、非线性的变化一个看似简单的电路背后是晶体管、运放、电容电感之间复杂的相互作用。而“低频信号发生及处理电路”这个实训项目恰恰是叩开模电实战大门最经典、也最有效的一块敲门砖。它不是一个纸上谈兵的理论模型而是一个要求你亲手搭建、调试并最终让它“唱出”指定波形、完成特定功能的实体电路。这个项目的核心目标非常明确自主产生一个低频电信号并对这个信号进行一系列“加工”处理。这里的“低频”通常指20Hz到20kHz的音频范围或是更低至几Hz的缓变信号。信号发生器是电子测试的“心脏”而处理电路则是“大脑”两者结合就能模拟出传感器信号调理、音频前置放大、有源滤波等无数实际应用的场景。我当年做这个实训时最大的感触是书本上那些抽象的“虚短虚断”、“频率响应”、“失真度”概念在示波器的波形跳动和万用表的读数变化中突然变得无比鲜活和具体。通过这个项目你不仅能巩固运算放大器、振荡器、滤波器等核心知识点更能获得宝贵的电路调试经验和“电路直觉”这是只看仿真软件永远无法替代的。2. 核心设计思路模块化构建与系统级联面对一个综合性的电路设计最忌讳的就是一开始就想画出一个完整的、庞大的原理图。正确的思路是模块化分解将复杂系统拆解成若干个功能明确、相对独立的子模块分别设计、仿真和调试最后再像搭积木一样级联起来。对于“低频信号发生及处理”这个任务我们可以清晰地划分为三大核心模块。2.1 信号发生模块如何让电路“振动”起来信号发生是源头。我们需要一个能自动产生周期性波形的电路常见的选择有正弦波、方波和三角波。对于低频应用尤其是入门实训文氏桥振荡器Wien-Bridge Oscillator是产生正弦波的首选方案。它的结构清晰原理易懂非常适合用来理解振荡的起振和稳幅条件。文氏桥振荡器的核心是一个由运放构成的同相放大器加上一个RC串并联选频网络构成的反馈回路。选频网络在特定频率f0下f0 1/(2πRC)相移为0°且反馈系数为1/3。根据巴克豪森判据要维持等幅振荡放大器的增益必须恰好等于3。这里就引出了第一个设计关键点如何实现精确且稳定的增益为3简单用两个电阻搭成同相放大器增益Av 1 Rf/Rg理论上可行但电阻的精度和温漂会导致增益轻微偏离3结果就是振荡幅度要么越来越大直至饱和要么越来越小直至停振。因此实际电路中必须引入自动增益控制AGC机制。经典的做法是使用一个非线性元件来动态调节增益例如在反馈回路中并联两个反向的二极管。当输出幅度较小时二极管不导通电路增益略大于3促使振荡建立当输出幅度增大到使二极管导通时等效的反馈电阻减小从而将增益拉回到3实现稳幅。选择二极管时要关注其导通电压和动态电阻通常选用开关速度快、导通特性好的肖特基二极管或1N4148。实操心得文氏桥振荡器的起振有时需要“推一把”。你可以在仿真中设置一个瞬态初始条件或者在实物电路中上电瞬间用手指轻轻触碰一下运放的同相输入端引入一个微小的扰动就能帮助电路顺利起振。这是理论仿真不会告诉你的“玄学”小技巧。2.2 信号处理模块给信号“化妆”与“整形”生成了原始的正弦波后处理模块的任务是对其进行改造。这里通常包含两个子功能波形变换和滤波。波形变换最常见的是将正弦波变为方波。这可以通过一个过零比较器来实现。将一个运放接成开环或高增益状态正弦波信号输入到同相端反相端接地。当正弦波电压大于0时输出瞬间跳变到正饱和电压接近正电源电压当正弦波电压小于0时输出跳变到负饱和电压。这样一个标准的方波就产生了。这里需要注意运放的压摆率Slew Rate必须足够高否则方波的上升沿和下降沿会变得倾斜高频分量受损。滤波则是为了提取或消除特定频率分量。如果我们想从复杂的信号中取出我们生成的那个特定频率的正弦波或者想对方波进行平滑方波富含奇次谐波就需要用到滤波器。对于低频信号处理有源滤波器比无源滤波器更有优势因为它能提供增益并且输入输出阻抗易于匹配。一个二阶压控电压源VCVS低通或带通滤波器结构如Sallen-Key拓扑就非常合适。设计时需要根据目标频率通常是信号发生器的基频和品质因数Q值来计算电阻电容的值。使用MFB多反馈拓扑则可以方便地实现带通滤波其中心频率和带宽可以独立调节。2.3 电源与级间耦合容易被忽视的“后勤保障”很多初学者把全部精力放在信号通路上却栽在了电源和耦合上。双电源供电如±12V对于运放电路几乎是标配它能确保信号可以围绕0V上下摆动简化了直流偏置的设计。你需要一个稳定的、纹波小的线性稳压电源如78L12/79L12并在每个运放的电源引脚附近放置一个0.1μF的瓷片电容进行去耦以吸收高频噪声。级间耦合方式决定了直流分量是否会传递。如果我们希望后级电路只处理交流信号而不受前级直流工作点影响就必须使用隔直电容。电容容值的选择需要计算C 1/(2πf * R_in)其中f是最低工作频率R_in是后级电路的输入电阻。例如对于20Hz的信号和10kΩ的输入电阻隔直电容应远大于0.8μF通常选择10μF的电解电容并注意极性。3. 核心器件选型与电路参数计算理论设计之后就是落地的关键一步选型和计算。这一步决定了电路是“能工作”还是“性能优秀”。3.1 运算放大器的选择通用型足矣对于低频实训项目我们不需要追求超高带宽或超低噪声的精密运放。一颗经典的通用型运放完全够用例如TL072或NE5532。它们都是双运放一片芯片就能完成放大和比较两个功能性价比高。TL072是JFET输入型输入阻抗极高几乎不从前级汲取电流非常适合作为前级缓冲或高阻抗传感器的接口。NE5532是双极型输入噪声更低驱动能力稍强被称为“运放之皇”在音频领域应用广泛。选择时关注几个关键参数增益带宽积GBW应远大于工作频率。对于20kHz的信号GBW大于1MHz的运放都绰绰有余。TL072的典型GBW是3MHz。压摆率SR决定了输出波形变化的最大速度。对于要产生方波的比较器电路SR必须足够高否则方波边沿会变成斜坡。TL072的SR典型值为13V/μs对于几十kHz的方波完全足够。输入失调电压对于直流精度要求高的场合如精密比较器需要注意但对于交流信号处理影响不大。3.2 文氏桥振荡器参数设计实例假设我们的设计目标是产生一个f0 1kHz的正弦波。确定R和C根据公式 f0 1/(2πRC)。为了减少元件种类通常取R1R2R C1C2C。先选定一个常见的电容值比如 C 10nF (0.01μF)。计算R R 1/(2πf0C) 1/(2 * 3.14 * 1000 * 10e-9) ≈ 15.9kΩ。我们可以取一个最接近的标准值R 16kΩ。确定增益电阻为了满足起振条件Av≥3且引入AGC稳幅我们设计一个增益略大于3的放大器。采用同相放大结构Av 1 Rf/Rg。令 Rg 10kΩ。为使 Av ≈ 3.1预留起振裕量则 Rf 应满足3.1 1 Rf/10k Rf 21kΩ。实际电路中Rf将由一个固定电阻如20kΩ和一个非线性网络如二极管并联电阻共同构成使动态增益稳定在3。3.3 滤波器设计以二阶低通滤波器为例假设我们需要设计一个截止频率fc 2kHz的巴特沃斯低通滤波器最大平坦度。 采用Sallen-Key拓扑其传递函数决定了元件参数。对于巴特沃斯响应有标准的设计系数。选择电容值为方便通常先设定两个电容的比值或直接取相同值。令 C1 C2 C 10nF。计算电阻值对于巴特沃斯响应传递函数中的参数满足特定关系。简化计算中可以使用公式 R 1/(2πfcC) 进行估算然后通过标准表格或软件微调。R ≈ 1/(2 * 3.14 * 2000 * 10e-9) ≈ 7.96kΩ。取标准值R1 R2 8.2kΩ。确定增益电阻Sallen-Key电路的同相增益K1Rb/Ra对于巴特沃斯响应K需设置为特定值如1.586以实现最平坦响应。这需要查表或使用滤波器设计工具精确计算。在要求不高的实训中可以先将增益设为1即接成电压跟随器Rb0 Ra开路这仍然是一个有效的二阶低通滤波器只是响应特性略有变化。4. 从仿真到实物的完整实现流程设计完成参数算好接下来就是动手实现。我强烈建议遵循“先仿真后焊接”的流程这能节省大量时间和物料成本。4.1 仿真验证用软件预演一切使用LTspice、Multisim或Proteus等电路仿真软件将前面设计的各个模块电路搭建出来。分模块仿真搭建文氏桥振荡器进行瞬态分析观察输出是否能起振并稳定在某个幅值。测量其频率是否与设计值1kHz吻合。搭建过零比较器输入仿真正弦波观察输出方波的边沿质量和占空比。搭建滤波器电路输入一个混合信号如1kHz正弦波3kHz噪声进行交流分析观察其幅频特性曲线看是否在2kHz处有预期的衰减。系统级联仿真将信号发生模块的输出连接到波形变换和滤波模块进行整体瞬态分析。观察最终输出的信号是否达到了“生成-变换-滤波”的预期目标。这个阶段可以提前发现级间阻抗匹配、负载效应等问题。4.2 实物焊接与布局细节决定成败在面包板或万用板上进行焊接。布局原则遵循信号流方向从输入到输出直线或U型布局避免信号线交叉或形成环路。将电源模块放在板子一端并用粗导线或铜箔为电源总线供电。接地艺术模拟电路对地噪声非常敏感。推荐使用单点接地或星型接地。即所有地线最终都汇集到电源滤波电容的接地端而不是随意地串接起来。这能有效避免地线公共阻抗耦合引入的干扰。电源去耦这是必须养成的习惯。在每一片运放或其他IC的电源引脚V和V-与地之间尽可能靠近引脚的地方焊接一个0.1μF的瓷片电容。它可以为芯片的高速电流需求提供局部能量缓存防止噪声通过电源线传播。元件安装电阻、瓷片电容采用卧式安装以节省空间和稳定性。电解电容注意极性。所有连接线尽量短而直。4.3 上电调试与测量与电路对话焊接完毕检查无误后方可接通电源。调试应分步进行静态工作点检查不上信号用万用表测量各运放输出端的直流电压。在双电源供电且无直流输入时理想情况下输出应为0V。实际可能会有几毫伏到几十毫伏的偏差这主要是输入失调电压引起的只要偏差不接近电源电压表明运放处于饱和状态就属正常。动态信号追踪首先单独测试信号发生器。用示波器探头接在文氏桥振荡器的输出端调节时间档位和电压档位应能看到稳定的正弦波。测量其频率和峰峰值。如果不起振检查电源是否接对运放是否装反RC网络参数是否正确AGC二极管方向是否正确可以尝试轻微调节增益电阻Rf。信号正常后将其接入比较器用示波器双通道同时观察输入正弦波和输出方波看比较是否准确方波边沿是否陡峭。最后将方波或正弦波输入滤波器用示波器观察输出波形。对于低通滤波器方波的高频边沿会被平滑趋向于三角波或正弦波对于带通滤波器可以只让特定频率通过。5. 典型故障现象与深度排查指南调试过程很少一帆风顺以下是几个最常见的问题及排查思路。5.1 振荡器不起振或输出失真现象输出为直流电压正或负电源电压或波形严重削顶失真。排查检查电源确保运放供电电压正确且稳定。用万用表测量运放V和V-引脚对地的电压。检查反馈网络用万用表电阻档测量RC串并联网络是否连通电阻电容值是否接近设计值。重点检查AGC部分的二极管是否焊反或损坏。验证增益断开振荡环路的某一点例如断开从输出到选频网络的连线从选频网络输入端注入一个小的正弦波信号可用信号发生器在运放输出端测量增益是否确实在3左右。如果增益远小于3肯定不起振如果增益过大波形会削顶。引入扰动在通电瞬间用示波器探头或一根导线短暂触碰运放同相输入端有时能“激发”起振。5.2 比较器输出方波边沿缓慢或有过冲现象方波的上升/下降沿不是垂直的而是有明显的斜坡或者边沿处有振铃。排查压摆率限制这是最常见原因。输入信号的频率太高或幅度变化太快超过了运放的压摆率能力。计算一下SR 2πfVp。对于1kHz、10Vpp的正弦波所需SR 23.141000*10 ≈ 0.063V/μs通用运放都能满足。但如果输入是高速脉冲就需要检查。解决方案是换用SR更高的比较器专用芯片如LM311或高速运放。寄生电容与布局比较器输出端连接了过长的导线或较大的容性负载会减缓边沿速度。确保输出走线短并在布局上远离输入线防止耦合。过冲与振铃通常由输出端的电感长导线与负载电容形成谐振引起。可以在输出端串联一个小的阻尼电阻如22-100Ω或采用更短的连接线。5.3 滤波器效果不理想或自激振荡现象滤波后的信号与仿真预期相差甚远或者在输出端出现了高频的等幅正弦波自激。排查参数误差电阻电容的实际值与标称值有误差特别是电容容差可能达10%甚至20%。这会导致截止频率偏移。用万用表或LCR表测量关键位置的RC元件实际值。运放带宽不足滤波器的传递函数是基于运放理想模型推导的。如果工作频率接近或超过运放的增益带宽积运放的开环增益会下降导致滤波器特性畸变。确保所选运放的GBW至少是滤波器截止频率的50-100倍。自激振荡这是最棘手的问题。表现为输出有高频毛刺或持续振荡。原因通常是运放相位裕度不足在高频下因寄生电容等影响变为正反馈。解决方案1在运放的输出端和反相输入端之间跨接一个小的补偿电容几pF到几十pF引入相位超前补偿。这是最常用的方法。解决方案2检查电源去耦电容是否安装到位且靠近运放引脚。解决方案3降低电路板上的寄生电容和电感保持走线简洁。5.4 系统级联后前级负载过重现象信号发生器单独工作正常但一接到后级电路波形幅度就变小或失真。排查阻抗匹配问题前级电路的输出阻抗较高而后级电路的输入阻抗较低形成了较大的负载效应。例如文氏桥振荡器的输出阻抗大致等于其输出串联电阻如果有的话或运放的输出阻抗较低。如果后级是一个低输入阻抗的电路就会分压。解决方案在两级之间加入一个电压跟随器缓冲器。电压跟随器的输入阻抗极高几乎不汲取电流输出阻抗极低驱动能力强完美地解决了阻抗匹配和隔离问题。这是模拟电路设计中极其常用且重要的技巧。完成这个低频信号发生及处理电路的实训其价值远不止于得到一个能工作的电路板。它是一次完整的工程实践演练从理论分析、参数计算、软件仿真到硬件选型、布局焊接、调试排故。每一个环节遇到的挑战和解决问题的过程都会深化你对模拟电路的理解。当你看到自己设计的电路在示波器上稳定地显示出预想的波形时那种成就感是无可替代的。这份经验将成为你后续学习更复杂的模拟系统乃至从事硬件开发工作的坚实基石。记住模电的世界手过一遍胜过眼过千遍。

相关新闻

活动管理软件选型的技术评估框架

活动管理软件选型的技术评估框架

针对深圳地区社团、协会、校友会及中小型组织的活动管理需求,选型应聚焦于系统对核心业务闭环的支持能力。以下从四个技术维度构建评估框架,所有指标均需通过实际操作验证。一、活动建模与流程配置能力系统应支持多业态活动模板(会议、培训、…

2026/10/18 11:56:21 阅读更多 →
LVS 负载均衡集群

LVS 负载均衡集群

一、集群和分布式1、什么是集群集群是为了解决某个特定问题将多台计算机组合起来形成的单个系统2、集群的类型LB:LoadBalancing(负载均衡)由多个主机组成,每个主机只承担一部分访问HA:High Availability (高可用&#…

2026/10/18 22:21:41 阅读更多 →
微信/企微聊天记录怎么用 AI 总结?4 种方案的能力与边界

微信/企微聊天记录怎么用 AI 总结?4 种方案的能力与边界

微信和企业微信里的聊天记录,已经成为很多私域业务的重要信息源。真正有价值的并不是把几百条消息压缩成几句话,而是从客户群、服务群和项目群中持续提取: 客户需求和高频问题;已确认的结论;待办事项、负责人和截止时间…

2026/10/19 0:54:22 阅读更多 →

最新新闻

1~30秒参考音频克隆任意声音:Seed-VC 零样本语音转换完整零训练指南

1~30秒参考音频克隆任意声音:Seed-VC 零样本语音转换完整零训练指南

1~30秒参考音频克隆任意声音:Seed-VC 零样本语音转换完整零训练指南 【免费下载链接】seed-vc zero-shot voice conversion & singing voice conversion, with real-time support 项目地址: https://gitcode.com/GitHub_Trending/se/seed-vc 有一场会要开…

2026/10/19 2:01:28 阅读更多 →
MiniCPM-V-2_6-GPTQ 视频理解全流程:64 帧看懂一整段视频

MiniCPM-V-2_6-GPTQ 视频理解全流程:64 帧看懂一整段视频

MiniCPM-V-2_6-GPTQ 视频理解全流程:64 帧看懂一整段视频 【免费下载链接】antimicrox Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support. 项目地址: https://gitcode.com/Gi…

2026/10/19 2:01:28 阅读更多 →
biliTickerBuy 完整使用指南:免费开源的 B 站会员购抢票辅助工具,开售自动下单

biliTickerBuy 完整使用指南:免费开源的 B 站会员购抢票辅助工具,开售自动下单

biliTickerBuy 完整使用指南:免费开源的 B 站会员购抢票辅助工具,开售自动下单 【免费下载链接】biliTickerBuy b站会员购购票辅助工具 项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy 开售那几秒,你连刷七八次页面,「立即购买」刚亮起就弹出排队提示…

2026/10/19 2:01:28 阅读更多 →
低功耗设计中的反直觉陷阱:为什么进入 STOP 模式电流反而变大了?

低功耗设计中的反直觉陷阱:为什么进入 STOP 模式电流反而变大了?

摘要: 可穿戴设备续航从 7 天缩水到 2 天,电池容量没变、固件逻辑没改,问题出在低功耗模式上。更诡异的是——进入 STOP 模式后电流反而比 RUN 模式更大。这不是硬件故障,而是低功耗设计里最反直觉的一类陷阱:GPIO 悬空、外设时钟未关、上拉下拉配错、调试接口未禁用……每…

2026/10/19 2:01:28 阅读更多 →
Qwen-Image-Layered-6bit分层质量调优:steps与resolution如何取舍才最划算

Qwen-Image-Layered-6bit分层质量调优:steps与resolution如何取舍才最划算

【免费下载链接】Qwen-Image-Layered-6bit 项目地址: https://ai.gitcode.com/hf_mirrors/zimengxiong/Qwen-Image-Layered-6bit 点击查看 免费下载 Qwen-Image-Layered-6bit 是面向 Apple Silicon 的 6-bit 量化图像分层模型,能把任意图片分解为多张 R…

2026/10/19 2:01:28 阅读更多 →
ABAP Cloud 的 OLTP 开发,从数据增删改查走向完整的业务事务

ABAP Cloud 的 OLTP 开发,从数据增删改查走向完整的业务事务

采购申请页面上的保存按钮,背后通常不只有一次数据库写入。申请抬头需要保存,行项目需要关联,金额需要计算,供应商需要校验,当前操作者还必须具备相应权限。只要其中一项没有满足业务要求,系统就不能把这张申请当成一份完整、有效的业务单据。 这类围绕业务数据开展读取…

2026/10/19 2:00:28 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

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

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/18 12:16:16 阅读更多 →