news 2026/9/24 11:19:42

12V转200V推挽DC-DC升压电源设计:胆机高压供电实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
12V转200V推挽DC-DC升压电源设计:胆机高压供电实战

1. 项目缘起与整体设计思路

玩胆机的朋友多半都遇到过同一个尴尬:机器本身花了大价钱,输出变压器、电子管、耦合电容样样讲究,结果一测屏极电压,纹波大得能当示波器信号源用。尤其是做前级或者小功率单端,传统工频变压器加整流滤波那一套,体积大、重量沉、发热还厉害,想塞进一个紧凑机箱里几乎不可能。我这个项目就是冲着这个痛点去的——用12V直流输入,通过推挽DC-DC升压电路,输出200V左右的高压,给胆机前级或者小功率推挽后级供电。

先说清楚这个方案适合谁。如果你手头有12V蓄电池或者开关电源,想给6N3、6N11、12AX7这类前级管供电,或者给6P1、6P14推挽小功放做屏压,这个电路完全够用。如果你要驱动211、845这种大管子,那得另想办法,功率等级不在一个量级上。我这次设计的输出功率定在30W左右,200V下能稳定输出150mA,应付大多数前级和小功率推挽后级绰绰有余。

为什么选推挽拓扑而不是反激或者Boost?这里得掰扯清楚。反激拓扑结构简单,但变压器设计麻烦,漏感处理不好尖峰能把开关管打穿,而且输出纹波大,对胆机这种对电源敏感的负载不太友好。Boost升压电路虽然元件少,但它是非隔离的,12V地和200V高压共地,调试的时候手一抖就可能把低压侧的设备全带走,安全性差。推挽拓扑的好处在于:变压器双向磁化,磁芯利用率高,同样功率下体积可以做得更小;开关管电压应力低,只需要承受两倍输入电压加上尖峰,选型容易;输出可以方便地做多组绕组,灯丝电压和高压一揽子解决。

控制芯片我选了UCC28089。这颗芯片在推挽和半桥拓扑里算是老江湖了,自带振荡器、双路互补输出、死区时间可调,最关键的是它有软启动和逐周期限流,调试的时候不容易炸管。相比用SG3525或者TL494,UCC28089的驱动能力更强,死区时间设置更灵活,而且工作频率可以拉到500kHz以上,变压器可以做得更小。不过它的供电范围是8V到15V,12V输入正好在甜点区,不需要额外稳压。

变压器是这项目的灵魂。推挽变压器和反激变压器设计思路完全不同,反激是储能再释放,推挽是直接传递能量。磁芯我选的是EE28或者PQ2625,PC40材质,饱和磁通密度在100度时大约0.3T。设计的时候有个经验法则:推挽变压器的工作磁通摆幅ΔB不要超过饱和磁通的三分之一,也就是0.1T左右。为什么是三分之一?因为推挽工作时磁芯是双向磁化的,从-Bmax到+Bmax,如果ΔB取太大,一旦有直流偏磁或者瞬态过冲,磁芯很容易饱和,饱和之后电感量骤降,电流飙升,开关管瞬间就没了。取三分之一是留足余量,保证在输入电压波动、负载突变、温度上升的情况下都不会出问题。

工作频率我定在100kHz。这个频率下,EE28磁芯配0.1T的ΔB,初级匝数大概在12匝左右,次级按变比算下来差不多200匝。频率再高,开关损耗和变压器集肤效应会变得明显;频率太低,变压器体积又上去了。100kHz是个折中点,用普通的漆包线就能绕,不需要利兹线。

2. 核心电路细节与关键参数计算

2.1 推挽升压电路的工作原理拆解

推挽电路的结构说白了就是两个开关管轮流导通,把12V直流切成交流,送到变压器初级,次级升压后再整流成高压直流。具体来说,UCC28089的OUTA和OUTB两路输出是互补的,中间有死区时间。当OUTA为高时,Q1导通,12V加在变压器初级的一半绕组上,次级感应出正电压;死区时间到,Q1关断,Q2还没开,这时候变压器漏感能量通过体二极管或者缓冲电路释放;然后OUTB为高,Q2导通,电流从另一端流入初级,次级感应出负电压。如此循环,变压器磁芯就在正负两个方向交替磁化。

这里有个关键点:推挽变压器的初级是中心抽头结构,12V接中心抽头,两端分别接两个开关管的漏极。这样每个开关管承受的电压是2倍输入电压加上漏感尖峰。12V输入,理论上开关管耐压要30V以上,但实际漏感尖峰可能冲到40V甚至更高,所以我选了IRF540,100V耐压,60A电流,导通电阻44毫欧,余量足够。如果你用更低的输入电压,比如5V,那30V的管子也能凑合,但12V系统建议至少60V耐压起步。

死区时间设置很讲究。设太短,两个管子可能直通,12V直接短路到地,瞬间炸管;设太长,变压器能量无处释放,效率下降,输出功率上不去。UCC28089的死区时间通过RT和CT引脚的外围电阻电容决定,我实测下来,100kHz频率下死区设在200ns到300ns比较合适。具体计算方法是:死区时间大约等于CT电容从1.2V充到2.4V的时间,公式是t_dead ≈ 0.6 × RT × CT。我取RT=10k,CT=470pF,算下来死区约280ns,实测波形干净,没有直通迹象。

2.2 变压器设计:从磁芯选型到绕组计算

变压器设计是这项目最费脑子的部分,我踩过的坑也最多。先说磁芯选型。EE28的窗口面积够大,绕200匝次级不费劲,但如果你要输出更大功率,比如50W以上,建议直接上PQ3230或者EE35,窗口大,散热好。PC40材质的居里点在200度以上,100度时饱和磁通密度约0.3T,我们取ΔB=0.1T,工作频率100kHz,占空比最大0.45(留死区),初级匝数计算公式是:

N_pri = (Vin_min × D_max) / (2 × f × ΔB × Ae)

其中Vin_min取10.8V(12V减10%),D_max取0.45,f=100kHz,ΔB=0.1T,EE28的Ae=86mm²=86e-6 m²。代入算一下:

N_pri = (10.8 × 0.45) / (2 × 100000 × 0.1 × 86e-6) ≈ 2.8匝

等等,这个结果明显不对,2.8匝太少了。问题出在哪?我重新检查公式。推挽变压器初级是中心抽头,每半边绕组承受的伏秒积是Vin × D × T/2,因为一个周期内每半边只工作一半时间。所以公式应该是:

N_half = (Vin_min × D_max) / (2 × f × ΔB × Ae)

但这里D_max是总占空比,每半边最大占空比是D_max/2。实际上更准确的写法是:

N_half = (Vin_min × D_half) / (f × ΔB × Ae)

其中D_half是每半边的最大占空比,取0.45。代入:

N_half = (10.8 × 0.45) / (100000 × 0.1 × 86e-6) ≈ 5.6匝

取整6匝,每半边6匝,总共12匝带中心抽头。这个结果合理多了。次级匝数按变比算:输出电压200V加上整流压降和裕量,取210V。变比n = 210 / 10.8 ≈ 19.4,次级匝数 = 6 × 19.4 ≈ 116匝。但实际绕制时我取了120匝,留点余量,因为负载加重时占空比会增大,输出电压会略降。

绕制工艺上,初级用0.5mm漆包线双线并绕,每半边6匝,中心抽头从中间引出。次级用0.25mm漆包线绕120匝,分三层绕,每层40匝,层间加绝缘胶带。为什么次级用细线?因为200V下电流只有150mA,0.25mm线径的载流量足够了,而且细线绕120匝更容易排线,窗口利用率高。初级用粗线是因为12V侧电流大,30W输出下初级电流峰值可能到5A以上,0.5mm双线并绕等效截面积约0.4mm²,载流量够用。

注意:绕制推挽变压器时,初级两个半绕组必须完全对称,匝数一致、绕法一致、长度一致。不对称会导致磁芯偏磁,轻则效率下降,重则饱和炸管。我第一版就是手工绕的时候一边紧了点,结果空载电流差了30%,后来拆了重绕才解决。

2.3 输出整流与滤波:快恢复二极管的选择

次级120匝输出的交流电压经过全桥整流变成直流。这里不能用普通的1N4007,因为工作频率100kHz,1N4007的反向恢复时间在微秒级,根本跟不上。必须用快恢复二极管或者肖特基。200V耐压、1A电流的快恢复二极管,比如FR107或者UF4007,反向恢复时间在500ns以内,勉强能用。但更好的选择是碳化硅肖特基,比如C3D02060,反向恢复时间几乎为零,效率能提升两三个百分点。不过碳化硅管子贵,预算有限的话UF4007也凑合。

整流后的滤波电容我用了两个47μF/450V的电解电容并联,再并一个0.1μF的薄膜电容滤高频。为什么用两个47μF而不是一个100μF?因为电解电容的等效串联电阻和等效串联电感在高频下影响很大,并联可以降低ESR和ESL,滤波效果更好。薄膜电容负责吸收高频尖峰,没有它的话输出纹波里会有很多高频毛刺,胆机里能听到“嘶嘶”声。

输出纹波的计算:推挽输出频率是开关频率的两倍,因为正负半周都在输出能量,所以纹波频率是200kHz。纹波电压ΔV ≈ I_out × (1 - D) / (f_ripple × C)。取I_out=150mA,D=0.45,f_ripple=200kHz,C=94μF,算下来ΔV ≈ 0.15 × 0.55 / (200000 × 94e-6) ≈ 4.4mV。这个纹波水平对胆机来说完全可以接受,前级管屏极供电纹波在10mV以内基本听不出交流声。

3. 实操过程与核心环节实现

3.1 元器件选型与采购清单

这个项目的元器件不算多,但有几个关键件不能省。我把清单列出来,附上我实际用的型号和选型理由。

元器件型号/参数数量选型理由
控制芯片UCC280891推挽专用,死区可调,软启动
开关管IRF5402100V/60A,余量足,导通电阻低
变压器磁芯EE28 PC401窗口大,Ae=86mm²,100kHz下损耗低
快恢复二极管UF40074200V/1A,反向恢复500ns
滤波电容47μF/450V2高频低ESR
薄膜电容0.1μF/630V1吸收高频尖峰
栅极电阻10Ω2限制栅极电流,抑制振铃
死区电阻10kΩ1配合CT设死区
死区电容470pF1死区约280ns
软启动电容10μF1软启动时间约10ms
电流采样电阻0.1Ω/2W1逐周期限流
输入滤波电容470μF/25V2吸收12V输入纹波

采购的时候注意,UCC28089有SOIC-8和DIP-8两种封装,手工焊接建议买DIP-8,插在洞洞板上就能用。IRF540买正品,假货的导通电阻能差一倍,发热严重。变压器磁芯买成套的,骨架和磁芯一起买,不然骨架不匹配很麻烦。

3.2 变压器绕制实操记录

绕变压器是整个项目最耗时的环节,我花了大概两个小时绕了第一版,结果参数不对又拆了重绕。这里把正确的绕制步骤记下来,你可以直接抄作业。

第一步,准备骨架和漆包线。EE28骨架的引脚定义要看清楚,初级侧一般有6个引脚,次级侧也有6个。我用的骨架初级侧引脚1-3是半边绕组,4-6是另半边,3和4是中心抽头。次级侧引脚7-12随便用,我用了7和12做输出。

第二步,绕初级。取0.5mm漆包线两根,并排从引脚1开始绕,绕6匝到引脚3,这是第一个半绕组。然后从引脚4开始,同样双线并绕6匝到引脚6,这是第二个半绕组。注意两个半绕组的绕向必须一致,都是顺时针或者都是逆时针。绕完之后用万用表测一下,引脚1到3的电阻和引脚4到6的电阻应该基本相等,差个几毫欧正常,差太多说明匝数不对。

第三步,加绝缘层。初级绕完之后包两层聚酯绝缘胶带,宽度要盖住整个窗口,不能有裸露的铜线。这步不能省,初级和次级之间要承受200V以上的电压差,绝缘不好会打火。

第四步,绕次级。取0.25mm漆包线,从引脚7开始绕,第一层绕40匝,排线要整齐,不能交叉。绕完一层包一层绝缘胶带,再绕第二层40匝,再包胶带,再绕第三层40匝。三层总共120匝。绕向和初级保持一致。绕完之后测引脚7到12的通断,应该是通的,电阻大概几欧姆。

第五步,装磁芯。EE28磁芯是两半的,对着插进骨架,注意不要留气隙。推挽变压器不需要气隙,磁芯对接越紧密越好。装好之后用胶带把磁芯固定住,防止振动发出啸叫。

实操心得:绕线的时候戴个指套,漆包线边缘很锋利,绕几十匝手指就磨出印子了。排线的时候每绕10匝停下来用镊子推紧一下,不然线会松,窗口利用率下降。如果实在绕不下,换0.2mm的次级线,载流量也够。

3.3 电路板布局与焊接要点

这个电路我是在洞洞板上搭的,因为元件不多,没必要打板。但洞洞板布局也有讲究,布局不好会引入干扰,甚至影响稳定性。

功率地和信号地要分开走。12V输入的大电流路径、开关管漏极、变压器初级这些属于功率地,UCC28089的GND引脚、死区电阻电容、软启动电容这些属于信号地。两个地在输入滤波电容的负极汇合,不要在其他地方混接。混接的话开关噪声会串进控制芯片,导致振荡不稳定。

开关管的栅极驱动线要短。UCC28089的OUTA和OUTB到IRF540栅极的走线尽量短,最好不超过5厘米。走线长了会引入寄生电感,栅极波形振铃严重,开关损耗增加。栅极电阻10Ω紧贴开关管栅极焊接,不要放在芯片那边。

电流采样电阻的走线要开尔文连接。0.1Ω采样电阻两端分别引两根线到UCC28089的CS引脚和GND引脚,不要从电阻引脚中间分叉。这样采样的是电阻两端的真实压降,不受走线电阻影响。我第一版没注意这个,限流点飘得厉害,后来改成开尔文连接就稳了。

散热片不能省。IRF540在30W输出下每个管子功耗大概1W到1.5W,不加散热片温度能到100度以上。我用的是小的铝散热片,20mm×20mm×10mm,每个管子一片,用螺丝固定在洞洞板上。UCC28089本身功耗很小,不用散热。

3.4 上电调试步骤与波形实测

第一次上电千万别直接接200V负载,按下面的步骤来,能保命。

第一步,不装开关管和变压器,只给UCC28089供12V,用示波器看OUTA和OUTB的波形。正常应该是两路互补的方波,频率100kHz,死区约280ns。如果波形不对,检查RT和CT的值,或者芯片有没有虚焊。

第二步,装上开关管和变压器,但次级不接整流滤波,空载上电。用示波器看开关管漏极波形,应该是干净的方波,上升沿和下降沿有轻微振铃正常,但振铃幅度不能超过10V。如果振铃很大,检查变压器漏感和缓冲电路。我一开始没加缓冲,漏极尖峰冲到60V,后来在初级两端各加了一个RC缓冲(100Ω+1nF),尖峰降到40V以下。

第三步,接上整流滤波,输出端接一个10kΩ/5W的假负载,上电测输出电压。空载时输出电压可能偏高,因为占空比在轻载时会自动减小。带假负载后应该稳定在200V左右。如果电压偏低,检查变压器匝比是不是绕错了;如果电压偏高,检查反馈环路。UCC28089没有内置误差放大器,需要外接一个运放做反馈,我用的是TL431加光耦的经典方案,反馈信号接到芯片的COMP引脚。

第四步,逐步加大负载。从10mA开始,每次增加10mA,观察输出电压和开关管温度。到150mA时,输出电压应该还能保持在195V以上,开关管温度不超过60度。如果电压掉得厉害,说明变压器匝比不够或者占空比受限,需要调整。

实测波形记录:空载时开关管漏极电压波形是干净的方波,峰峰值约24V,振铃幅度5V左右。满载150mA时,漏极波形略有倾斜,因为漏感导致换流时间变长,但整体还在可接受范围。输出纹波用示波器AC耦合测,峰峰值约8mV,比理论计算值略大,因为电解电容的ESR在高频下贡献了一部分纹波。

4. 常见问题与排查技巧实录

4.1 上电炸管:原因分析与预防措施

炸管是新手最容易遇到的问题,我第一版就炸了两对IRF540。总结下来,炸管的原因无非这几个:死区时间不够导致直通、变压器饱和导致电流失控、栅极振铃导致误导通、漏感尖峰超过管子耐压。

死区时间不够是最常见的。UCC28089的死区由RT和CT决定,但实际电路中,栅极电阻和开关管输入电容会引入额外的延迟。如果死区设得太临界,比如200ns,实际可能因为延迟变成150ns,两个管子就直通了。我的经验是死区至少设300ns,宁可牺牲一点效率也要保证安全。判断死区够不够,用示波器同时看两个开关管的栅极波形,确保一个管子完全关断后另一个才开通。

变压器饱和的征兆是空载电流大、开关管发热严重、波形畸变。预防措施是设计时ΔB取小一点,0.1T甚至0.08T,留足余量。另外可以在初级回路串一个保险丝,饱和时电流飙升会烧保险丝,保住开关管。我用的是3A快熔保险丝,炸管之前保险丝先断。

栅极振铃可以通过加大栅极电阻来抑制,但电阻太大会增加开关损耗。10Ω是个折中值,如果振铃还是厉害,可以并联一个二极管加速关断,或者用负压关断电路。不过对于12V输入这种低压场合,10Ω加一个1N4148反向并联就够用了。

4.2 输出纹波大:滤波电容与布局的优化

输出纹波大是另一个常见问题。如果纹波超过50mV,胆机里肯定能听到交流声。排查思路是:先看纹波频率,如果是100Hz,那是输入12V电源的问题;如果是200kHz,那是输出滤波的问题;如果是高频毛刺,那是布局或者缓冲电路的问题。

200kHz纹波大,通常是滤波电容不够或者ESR太高。我一开始用了一个100μF/450V的普通电解,纹波有30mV,后来换成两个47μF/450V的低ESR电解并联,纹波降到8mV。如果还嫌大,可以再加一级LC滤波,用10μH电感和100μF电容组成π型滤波,纹波能降到1mV以下。

高频毛刺大,多半是整流二极管的反向恢复引起的。UF4007的反向恢复时间500ns,在100kHz下会产生电流尖峰,通过寄生电容耦合到输出。解决办法是在每个整流二极管两端并联一个100pF的陶瓷电容,吸收反向恢复尖峰。或者直接换碳化硅肖特基,一劳永逸。

布局问题导致的纹波,典型表现是纹波里混有开关频率的谐波。检查功率地和信号地有没有分开,输出滤波电容的接地端是不是直接接到变压器次级的地,而不是绕到控制芯片那边。我第二版把输出地直接接到次级绕组中心抽头,纹波明显改善。

4.3 效率偏低:损耗来源与提升方法

30W输出下,我的电路效率实测在85%左右,输入功率约35W。损耗主要来自开关管导通损耗、开关损耗、变压器铁损和铜损、整流二极管损耗。

开关管导通损耗:IRF540导通电阻44毫欧,峰值电流5A,每管导通损耗约1.1W,两个管子加起来2.2W。换更低导通电阻的管子,比如IRF3205,导通电阻8毫欧,损耗能降到0.4W,效率提升5个百分点。

开关损耗:100kHz下,开关管每次开关的损耗约0.5W,两个管子1W。减小开关损耗的办法是加快开关速度,但会加剧振铃。折中方案是用栅极电阻10Ω,配合RC缓冲,开关损耗控制在1W以内。

变压器损耗:EE28 PC40在100kHz、0.1T下的铁损约0.5W,铜损约0.8W。换更大磁芯或者用利兹线绕初级,铜损能降一半。但利兹线贵,而且绕制麻烦,小功率下不划算。

整流二极管损耗:UF4007正向压降1.7V,150mA下损耗0.26W,四个管子1W。换碳化硅肖特基,压降1.5V,损耗0.9W,差别不大。但碳化硅没有反向恢复损耗,整体效率能提升2个百分点。

4.4 常见问题速查表

现象可能原因排查方法解决措施
上电炸管死区不够、变压器饱和看栅极波形、测空载电流加大死区、减小ΔB、串保险丝
输出电压偏低匝比不对、占空比受限测变压器匝比、看COMP引脚电压调整匝比、检查反馈环路
输出纹波大滤波电容不够、布局差看纹波频率、检查地线加大电容、分开功率地信号地
开关管发热严重导通损耗大、散热不足测管子温度、算导通损耗换低导通电阻管子、加散热片
变压器啸叫磁芯松动、频率不稳按压磁芯、看振荡波形固定磁芯、检查RT/CT
效率低开关损耗大、变压器损耗大测输入输出功率、摸管子温度优化栅极驱动、换磁芯

避坑技巧:调试的时候在12V输入回路串一个灯泡,比如12V/5W的汽车灯泡。正常工作时灯泡微亮或者不亮,一旦有短路,灯泡全亮,限制电流,保护电路。这个土办法救了我好几次,比保险丝还直观。

5. 扩展思路与个人经验分享

这个电路做出来之后,我实际用在了自己的6N3前级上,屏压稳定在200V,交流声几乎不可闻。后来我又改了一版,把输出电压调到250V,给6P14推挽后级供电,输出功率提到50W,开关管换成IRF3205,变压器换成PQ3230,效率做到88%。再往上,如果想做300V以上的输出,整流二极管要换1000V耐压的,滤波电容也要换450V以上的,变压器次级匝数增加,窗口可能不够,得换更大的磁芯。

反馈环路这块,我用的是TL431加PC817光耦,反馈信号接到UCC28089的COMP引脚。TL431的参考电压2.5V,通过分压电阻设定输出电压。分压电阻的计算:输出电压200V,TL431参考端要2.5V,上分压电阻取200k,下分压电阻取2.5k,算下来输出电压约202.5V,接近200V。实际调试时用精密电位器微调,把输出电压调到正好200V。

保护电路方面,UCC28089自带逐周期限流,通过CS引脚检测采样电阻上的压降。采样电阻0.1Ω,限流点设在5A,对应CS引脚电压0.5V。超过5A时芯片自动关断当前周期,限制输出电流。这个保护对推挽拓扑很重要,因为推挽变压器一旦饱和,电流会迅速飙升,没有限流的话开关管必炸。

最后分享一个绕变压器的小技巧:绕次级的时候,每绕完一层,用万用表测一下这一层的电感量。如果电感量明显偏低,说明有匝间短路,可能是漆包线绝缘层破损了。我绕第一版的时候就遇到这个问题,测出来电感量只有正常值的一半,拆开一看,有一匝线的绝缘层被骨架毛刺刮破了,换了线重绕就好了。这个检查方法简单有效,能避免很多后续麻烦。

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

使用 Prisma Bindings 从 Node 脚本访问 Prisma 服务

后端数据库GraphQL 【免费下载链接】prisma1 💾 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL & MongoDB) [deprecated] 项目地址: https://gitcode.com/gh_mirrors/pr/prisma1 点击查看 免费下载 本教程面向已拥有运行中 …

作者头像 李华
网站建设 2026/9/24 11:14:21

Linux 启动流程与 systemd 运行目标实战手册

从按下电源键到出现登录提示符,要经过固件自检、GRUB2 引导、内核与 initramfs、systemd 拉起 target 一串环节,任何一环断了系统就起不来。 本文把启动过程拆成九步,讲清 systemd target 与传统运行级别的对应、运行目标的查看与切换&#x…

作者头像 李华
网站建设 2026/9/24 11:13:44

工控网络安全学习路线:从PLC协议解析到国产设备安全加固

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

作者头像 李华
网站建设 2026/9/24 11:11:27

从一条 SARIF 告警开始:OpenCodeReview × Jenkins 审查闭环实战

上一篇我们讨论了 OpenCodeReview 在 GitHub Actions 中的最短接入路径——一行 uses 即可启动 AI 审查。但对于大量运行 Jenkins 的团队来说,真正的战场在 Jenkinsfile 里。这篇文章从零开始,在 Jenkins 上搭建一条完整的 AI 审查闭环:从安装…

作者头像 李华
网站建设 2026/9/24 11:08:12

基于LM2596的±12V双路电源设计:拓扑、计算与PCB布局实战

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

作者头像 李华