news 2026/10/26 9:36:27

800G/1.6T光模块Flip Chip封装技术:从原理到实操全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
800G/1.6T光模块Flip Chip封装技术:从原理到实操全解析

1. 从封装视角看800G/1.6T光模块的Flip Chip技术

光模块这个行业,速率迭代的速度远比大多数人想象的要快。400G刚铺开没多久,800G已经在数据中心批量部署,1.6T的样品和早期方案也已经在头部厂商的实验室里跑起来了。每次速率翻倍,摆在封装工程师面前的难题都会成倍增加——而这一次,核心矛盾集中在了光电芯片与电芯片之间的互连密度上。

传统打线(Wire Bond)方案在400G时代还能勉强应付,但到了800G,尤其是1.6T,打线带来的寄生电感、信号完整性劣化、以及通道密度瓶颈,已经让很多方案走到了死胡同。Flip Chip(倒装焊)技术因此从“可选方案”变成了“必选方案”。这篇文章,我想从封装工艺和信号完整性的角度,把800G/1.6T光模块中Flip Chip技术的核心细节拆开来讲清楚——它为什么必须用、怎么用、用的时候会踩哪些坑。

如果你是从业者,正在做800G或1.6T光模块的封装设计、工艺开发或者信号完整性验证,这篇文章应该能帮你少走一些弯路。如果你是对光模块封装感兴趣的学习者,我也会尽量用生活化的类比把关键概念讲透。

2. 为什么800G/1.6T必须上Flip Chip

2.1 打线方案在800G时代的天花板

先说清楚打线为什么不行了。Wire Bond的本质是用一根细金属丝把芯片的Pad连接到基板或另一个芯片上。这根丝的长度通常在0.5mm到2mm之间,直径在15μm到25μm左右。在低速信号下,这根丝的影响可以忽略;但到了800G,单通道速率跑到100Gbps甚至更高(PAM4调制下),情况就完全变了。

一根1mm长的金丝,寄生电感大约在1nH左右。在100Gbps PAM4信号下,信号基频大约在25GHz到30GHz,三次谐波会到75GHz以上。在这个频率下,1nH的感抗大约是:

Z = 2πfL = 2 × 3.14 × 30×10⁹ × 1×10⁻⁹ ≈ 188Ω

这个阻抗相对于50Ω的特征阻抗来说,已经大到不可接受了。结果就是严重的阻抗不连续、信号反射、眼图闭合。更不用说多根打线之间的串扰和互感效应,在通道密度增加时会急剧恶化。

除了电气性能,打线还有物理空间的限制。800G光模块通常需要8个通道(每通道100G PAM4),1.6T则需要16个通道。每个通道的Driver、TIA、以及光芯片之间都需要互连。如果用打线,Pad的间距不能太小(通常最小80μm到100μm),否则打线机会撞到相邻的线。这意味着芯片的周长会被Pad占满,面积利用率极低。

2.2 Flip Chip的核心优势

Flip Chip的思路很直接:把芯片翻转过来,让芯片表面的Pad通过微凸点(Solder Bump或Copper Pillar)直接与基板上的Pad对接。信号路径从“芯片→金丝→基板”变成了“芯片→凸点→基板”,路径长度从毫米级缩短到几十微米级。

这个变化带来的好处是多维度的:

寄生参数大幅降低。一个直径20μm、高度15μm的铜柱凸点,寄生电感大约在0.05nH到0.1nH之间,比打线低了一个数量级以上。在30GHz下,感抗只有几欧姆,对信号完整性的影响微乎其微。

通道密度大幅提升。Flip Chip的凸点间距(Bump Pitch)可以做到40μm甚至更小(先进工艺下可以到20μm)。这意味着同样面积的芯片边缘可以容纳更多的I/O。对于1.6T光模块需要的16通道甚至32通道互连,这是唯一可行的方案。

热性能更好。凸点本身就是良好的热传导路径。芯片产生的热量可以通过凸点阵列直接传导到基板,再通过基板散热。相比之下,打线方案的热量主要靠芯片背面传导,路径更长、热阻更大。

适合高频封装。Flip Chip天然适合与BGA(Ball Grid Array)、LGA(Land Grid Array)等面阵列封装结合,形成从芯片到PCB的完整高频信号路径。

2.3 800G与1.6T对Flip Chip的不同要求

虽然800G和1.6T都用了Flip Chip,但两者的要求并不完全相同。800G目前主流是8×100G PAM4架构,单通道100Gbps。1.6T则是16×100G PAM4或者8×200G PAM4,单通道速率可能到200Gbps。

参数800G方案1.6T方案
通道数816(或8×200G)
单通道速率100G PAM4100G/200G PAM4
凸点间距50-80μm40-60μm
基板材料有机基板/陶瓷陶瓷/玻璃基板
对凸点寄生要求中等极高
散热要求高极高

从表格可以看出,1.6T对凸点间距和寄生参数的要求更苛刻。尤其是如果采用8×200G方案,单通道基频会到50GHz以上,这时候凸点的设计、基板的材料选择、甚至凸点下方的UBM(Under Bump Metallization)层都需要重新优化。

3. Flip Chip在光模块中的核心工艺细节

3.1 凸点制造:从Solder Bump到Copper Pillar

光模块中用的Flip Chip凸点主要有两种:焊料凸点(Solder Bump)和铜柱凸点(Copper Pillar Bump)。

焊料凸点是最传统的方案,材料通常是SnAg合金。制造过程是:在芯片Pad上先做UBM层,然后电镀或印刷焊料,最后回流形成球形凸点。优点是工艺成熟、成本低、回流时自对准效果好。缺点是焊料在回流后会塌陷,凸点高度一致性差,间距做不小(通常最小80μm),而且焊料本身的电阻和电感比铜高。

铜柱凸点则是先在Pad上电镀一层铜柱(通常15-25μm高),然后在铜柱顶部再镀一层薄焊料(SnAg,5-10μm)。回流时只有顶部的焊料熔化,铜柱本身不熔化。这样凸点高度由铜柱决定,一致性非常好,间距可以做到40μm甚至更小。铜的导电性和导热性都远优于焊料,寄生参数更低。

在800G/1.6T光模块中,铜柱凸点已经是主流选择。尤其是Driver和TIA芯片与光芯片之间的互连,几乎全部采用铜柱凸点。

实操心得:铜柱凸点的电镀均匀性是良率的关键。铜柱高度偏差如果超过±2μm,在回流后会导致部分凸点虚焊或桥连。建议在电镀后增加一道CMP(化学机械抛光)工序来平整铜柱表面,虽然增加成本,但良率提升明显。

3.2 UBM层:容易被忽视的关键界面

UBM(Under Bump Metallization)是凸点和芯片Pad之间的过渡层,通常由多层金属组成,比如Ti/Cu、TiW/Cu、Cr/Cu等。它的作用是:提供良好的欧姆接触、防止凸点金属向芯片内部扩散、增强凸点与Pad的附着力。

在800G/1.6T的高频应用中,UBM的设计有几个关键点:

厚度控制。UBM太薄,扩散阻挡效果差;太厚,会增加串联电阻。通常Ti层50-100nm,Cu层200-500nm是比较合理的范围。

侧壁覆盖。如果UBM的侧壁覆盖不好,电镀铜柱时会在侧壁形成薄弱点,长期可靠性会出问题。建议用溅射工艺做UBM,侧壁覆盖率可以做到80%以上。

与Pad的匹配。光芯片的Pad通常是Au或Al,电芯片的Pad通常是Al或Cu。不同Pad材料需要不同的UBM方案。比如Au Pad上做UBM,TiW/Cu的附着力就比Ti/Cu好。

3.3 基板设计:高频下的材料选择

Flip Chip的基板不再只是机械支撑和电气互连的载体,它本身就是高频信号路径的一部分。800G/1.6T光模块的基板设计需要考虑:

材料选择。有机基板(如FR4、BT树脂)成本低,但介电常数(Dk)和损耗角正切(Df)在毫米波频段表现较差。陶瓷基板(如AlN、Al₂O₃)的Dk更稳定、Df更低,但成本高、加工难度大。目前800G方案中,有机基板+低损耗材料(如Megtron 6、Tachyon)是主流;1.6T方案中,陶瓷基板和玻璃基板的比例在上升。

传输线设计。从凸点到BGA球的高速信号路径,通常采用GCPW(接地共面波导)或差分微带线。线宽和间距需要根据基板材料的Dk和厚度精确计算。比如在Dk=3.5、厚度100μm的基板上,要得到50Ω的特征阻抗,GCPW的线宽大约在60-70μm,间隙在100-120μm。

过孔设计。信号从基板顶层到BGA层需要经过过孔。过孔的寄生电容和电感在高频下不可忽略。建议用激光钻孔做微过孔(直径50-100μm),并采用背钻工艺去除多余的过孔 stub,减少反射。

3.4 回流焊接:温度曲线与自对准

Flip Chip的贴装和回流是整个工艺中最关键的步骤之一。过程是:芯片翻转后,凸点与基板Pad对齐,然后通过回流炉加热,使焊料熔化,形成冶金连接。

温度曲线设计。典型的SnAg焊料回流峰值温度在240-250°C,液相线以上时间(TAL)控制在60-90秒。升温速率不宜过快(建议1-3°C/s),否则助焊剂会飞溅;冷却速率也不宜过快(建议-2到-4°C/s),否则焊点晶粒粗大,可靠性下降。

自对准效应。焊料熔化时,表面张力会拉动芯片与基板对齐。这个效应对焊料凸点很明显,但对铜柱凸点来说,因为铜柱不熔化,自对准效果主要靠顶部焊料。所以铜柱凸点的贴装精度要求更高,通常需要贴片机精度在±3μm以内。

助焊剂残留。回流后助焊剂残留必须清洗干净,否则会影响后续Underfill的附着,还会在高温高湿环境下导致电迁移。建议用半水清洗或等离子清洗。

注意事项:铜柱凸点的回流窗口比焊料凸点窄。因为铜柱不熔化,焊料量少,如果温度不够或时间不足,很容易出现冷焊。建议在回流前用AOI检查凸点共面性,共面性偏差超过5μm的芯片直接报废,不要试图通过回流“救回来”。

4. 信号完整性与热管理:Flip Chip带来的新挑战

4.1 高频下的凸点建模与优化

Flip Chip虽然降低了寄生参数,但并没有消除它们。在1.6T的200G PAM4信号下,凸点的寄生电容和电感仍然会影响信号质量。

一个铜柱凸点的简化模型可以表示为:串联电感L_bump、串联电阻R_bump、以及凸点与周围参考平面之间的寄生电容C_bump。典型值:L_bump ≈ 0.05-0.1nH,R_bump ≈ 5-20mΩ,C_bump ≈ 10-30fF。

在50GHz下,0.1nH的感抗是31Ω,30fF的容抗是106Ω。虽然比打线好很多,但仍然需要在设计时考虑匹配。

优化方向有几个:

减小凸点高度。凸点越矮,电感越小。但凸点太矮会导致回流时焊料不足,可靠性下降。通常15-20μm是比较平衡的高度。

增加参考平面。在基板设计时,在凸点阵列下方或周围布置接地凸点,形成类似同轴的结构,可以显著降低寄生电感和串扰。

差分对设计。对于高速差分信号,两个凸点应该尽量靠近,并且对称布置。差分对之间的间距应该小于信号波长的一半,以减少共模噪声。

4.2 串扰控制:凸点间距与屏蔽

800G/1.6T光模块中,通道密度很高,凸点之间的串扰是一个大问题。串扰主要通过两种途径:电场耦合(容性串扰)和磁场耦合(感性串扰)。

在Flip Chip结构中,凸点之间的串扰主要取决于:

  • 凸点间距:间距越小,串扰越大
  • 凸点高度:高度越高,凸点之间的耦合面积越大
  • 周围接地凸点的分布:接地凸点可以起到屏蔽作用

实测数据表明,在40μm间距下,相邻信号凸点之间的近端串扰(NEXT)大约在-25dB到-30dB之间。如果加入接地凸点(每两个信号凸点之间加一个接地凸点),串扰可以降低到-35dB以下。

实操技巧:在凸点阵列布局时,尽量让高速差分对远离电源和低速信号。如果空间允许,在高速通道之间插入一排接地凸点,虽然会牺牲一些密度,但对信号完整性的改善非常明显。

4.3 热管理:凸点阵列的散热路径

800G/1.6T光模块的功耗通常在15W到30W之间,其中Driver和TIA芯片是主要热源。Flip Chip的凸点阵列本身就是一条重要的散热路径。

热量从芯片有源区产生,通过硅衬底传导到凸点,再通过凸点传导到基板,最后通过基板传导到外壳或散热器。这条路径的热阻主要取决于:

  • 硅衬底厚度:越薄热阻越小,但太薄会影响机械强度
  • 凸点材料和尺寸:铜柱的热导率(~400 W/m·K)远高于焊料(~50 W/m·K)
  • 凸点密度:密度越高,等效热阻越小
  • 基板材料:陶瓷基板的热导率远高于有机基板

在1.6T方案中,如果采用8×200G架构,单通道功耗可能到0.5W以上,整个芯片的功耗密度会非常高。这时候单纯靠凸点散热可能不够,还需要在芯片背面加散热片或者用热电制冷器(TEC)。

4.4 Underfill:可靠性的关键

Underfill是填充在芯片和基板之间的环氧树脂,作用是:缓解凸点的热机械应力、防止湿气侵入、提高机械强度。

Flip Chip的凸点和基板之间的热膨胀系数(CTE)不匹配是可靠性问题的根源。硅的CTE大约是2.6 ppm/°C,有机基板的CTE大约是15-20 ppm/°C,陶瓷基板大约是6-8 ppm/°C。在温度循环中,凸点会受到剪切应力,长期可能导致疲劳开裂。

Underfill通过填充凸点之间的空隙,把应力分散到整个芯片面积上,显著提高温度循环寿命。选择Underfill时需要考虑:

  • CTE匹配:Underfill的CTE应该介于芯片和基板之间
  • 玻璃化转变温度(Tg):Tg应该高于工作温度范围
  • 流动性:要能填充40μm甚至更小间距的凸点间隙
  • 固化条件:固化温度不能影响已经形成的焊点

常见问题:Underfill填充不完全(Void)是导致早期失效的主要原因之一。建议在填充前用等离子清洗去除助焊剂残留,填充时采用“L”形或“U”形路径,利用毛细作用让Underfill自然流入。填充后要用扫描声学显微镜(SAM)检查Void率,Void率超过5%的批次建议报废。

5. 实操案例:800G光模块Flip Chip封装全流程

5.1 项目背景与方案选型

假设我们要做一个800G光模块的封装方案,采用8×100G PAM4架构,光芯片是EML(电吸收调制激光器)阵列,电芯片是Driver和TIA。封装方案选择Flip Chip,基板用低损耗有机基板。

选型理由:8通道100G PAM4的信号基频在25-30GHz,打线方案的寄生电感会导致眼图严重闭合,所以必须用Flip Chip。有机基板成本比陶瓷低,配合低损耗材料(Df<0.005 @ 10GHz)可以满足信号完整性要求。

5.2 凸点设计与布局

Driver和TIA芯片的凸点采用铜柱凸点,铜柱高度18μm,直径25μm,顶部焊料厚度8μm。凸点间距60μm(信号凸点),接地凸点间距也是60μm,交错布置。

光芯片的凸点采用焊料凸点,因为光芯片的Pad通常比较大(80-100μm),焊料凸点的自对准效应可以降低贴装精度要求。

布局时,高速差分对布置在芯片边缘,每对差分凸点间距40μm,差分对之间插入接地凸点。电源和低速信号布置在芯片中心区域。

5.3 基板设计与仿真

基板采用4层结构:顶层信号层、接地层、电源层、底层BGA层。材料是Megtron 6,Dk=3.4,Df=0.004 @ 10GHz。顶层传输线采用GCPW,线宽65μm,间隙110μm,特征阻抗50Ω。

用HFSS做三维电磁仿真,提取凸点和传输线的S参数。仿真结果显示,在30GHz下,插入损耗小于1.5dB,回波损耗小于-15dB,相邻通道串扰小于-30dB。

5.4 贴装与回流

贴装用高精度贴片机,精度±2μm。贴装前用AOI检查凸点共面性,共面性偏差超过4μm的芯片直接报废。贴装后先做X-ray检查对齐情况,偏移超过5μm的重新贴装。

回流曲线:预热区150-180°C,保温60秒;回流区峰值245°C,TAL 75秒;冷却区-3°C/s。回流后用AOI检查焊点形貌,用X-ray检查Void率。

5.5 Underfill与可靠性测试

Underfill用毛细流动型环氧树脂,Tg=120°C,CTE=30 ppm/°C(Tg以下)。填充前等离子清洗,填充时基板预热到80°C,填充后150°C固化30分钟。

可靠性测试包括:温度循环(-40到125°C,1000次)、高温高湿(85°C/85%RH,1000小时)、机械冲击(1500G,0.5ms)。测试后用电学测试和SAM检查失效情况。

实操记录:在第一批样品中,温度循环500次后出现了部分凸点开裂。分析发现是Underfill的CTE偏高(35 ppm/°C),导致应力集中。换成CTE=28 ppm/°C的Underfill后,1000次温度循环无失效。

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

6.1 凸点虚焊与桥连

现象:X-ray检查发现部分凸点焊料不足或相邻凸点桥连。

排查思路:

  • 检查凸点共面性:共面性偏差超过5μm会导致部分凸点接触不良
  • 检查回流曲线:峰值温度不够或TAL不足会导致冷焊
  • 检查焊料量:焊料量过多会导致桥连,过少会导致虚焊
  • 检查贴装精度:偏移超过凸点直径的1/3会导致桥连

解决方法:调整电镀工艺保证凸点高度一致性;优化回流曲线;用AOI全检凸点共面性。

6.2 Underfill填充不完全

现象:SAM检查发现芯片下方有Void。

排查思路:

  • 检查凸点间距:间距太小(<30μm)会导致Underfill流动困难
  • 检查助焊剂残留:残留会阻碍Underfill的毛细流动
  • 检查填充温度:温度太低会导致Underfill粘度高、流动性差
  • 检查填充路径:路径设计不合理会导致气泡被困

解决方法:等离子清洗去除残留;提高填充温度到80-90°C;优化填充路径为“L”形或“U”形;选择低粘度Underfill。

6.3 高频信号损耗过大

现象:眼图测试发现眼高不足、抖动过大。

排查思路:

  • 检查基板材料:Df太高会导致介质损耗大
  • 检查传输线设计:线宽和间隙是否匹配50Ω
  • 检查过孔设计:过孔stub会导致反射
  • 检查凸点寄生:凸点高度和直径是否优化

解决方法:换用更低Df的基板材料;优化GCPW线宽和间隙;用背钻去除过孔stub;减小凸点高度。

6.4 热失效

现象:高温工作时芯片温度超过结温上限。

排查思路:

  • 检查凸点密度:密度太低会导致热阻大
  • 检查基板材料:有机基板热导率低
  • 检查散热路径:是否有散热片或TEC
  • 检查功耗分布:是否某个通道功耗特别高

解决方法:增加接地凸点密度;换用陶瓷基板;加散热片或TEC;优化Driver偏置降低功耗。

6.5 常见问题速查表

问题可能原因排查方法解决措施
凸点虚焊共面性差/温度不足X-ray/AOI优化电镀/回流曲线
凸点桥连焊料过多/贴装偏移X-ray调整焊料量/贴装精度
Underfill Void残留/温度低/路径差SAM等离子清洗/优化路径
信号损耗大材料Df高/线宽不对VNA测试换材料/优化传输线
热失效凸点密度低/基板热阻大热成像增加凸点/换基板
温度循环失效CTE不匹配/Underfill差温度循环测试换Underfill/优化凸点

独家避坑技巧:在项目初期就做DOE(实验设计),把凸点高度、回流温度、Underfill CTE作为变量,用少量样品快速找到最优窗口。不要等到批量生产才发现问题,那时候改工艺的成本会高很多。

7. 1.6T时代的Flip Chip技术演进方向

1.6T对Flip Chip提出了更高的要求,也推动了几项新技术的演进。

凸点间距继续缩小。从40μm向20μm甚至10μm演进。这需要更精细的电镀工艺和更高的贴装精度。混合键合(Hybrid Bonding)技术可能在1.6T后期或3.2T时代成为主流,它用铜-铜直接键合代替焊料,间距可以做到10μm以下。

玻璃基板。玻璃基板的Dk和Df比有机基板更低,热膨胀系数也更接近硅,是1.6T和更高速率的有力候选。但玻璃基板的加工难度大,成本高,目前还在验证阶段。

共封装光学(CPO)。把光芯片和电芯片封装在一起,进一步缩短互连距离。CPO对Flip Chip的精度和散热要求更高,可能需要用到硅光中介层(Interposer)。

新型Underfill材料。针对更小间距和更高频率,需要更低CTE、更低Df、更高流动性的Underfill材料。纳米填料Underfill和光固化Underfill是研究方向。

我在实际项目中体会到,Flip Chip在光模块中的应用远不只是“把芯片翻过来焊”这么简单。它涉及到凸点工艺、基板设计、信号完整性、热管理、可靠性等多个维度的协同优化。任何一个环节出问题,都会在最终测试中暴露出来。尤其是1.6T时代,容错窗口越来越窄,前期仿真和DOE的重要性怎么强调都不为过。

最后分享一个小技巧:在做凸点布局时,不要只考虑电气性能,还要考虑回流时的热分布。凸点密度不均匀会导致回流时芯片不同区域的温度不一致,进而导致焊点质量不一致。建议在凸点布局完成后,用热仿真检查回流时的温度分布,必要时调整凸点密度或增加热补偿凸点。这个步骤在800G项目中可能不是必须的,但在1.6T项目中,它往往是决定良率的关键。

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

可调试多格式网页播放器:专治M3U8黑屏、FLV卡顿、图片序列乱序

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

作者头像 李华
网站建设 2026/10/26 9:34:29

嵌入式ADC采样精度优化:从原理到滤波算法与硬件设计

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

作者头像 李华
网站建设 2026/10/26 9:34:15

ESP32选型指南:从SoC芯片到模组与开发板的完整解析

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

作者头像 李华
网站建设 2026/10/26 9:34:00

国产MCU替代实战:ARM与RISC-V选型迁移及生态建设

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

作者头像 李华
网站建设 2026/10/26 9:32:55

基于STM32的智能低碳路灯控制系统设计与调试全解析

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

作者头像 李华
网站建设 2026/10/26 9:32:29

ESP32应用商店:基于WASM的嵌入式模块化与安全OTA实践

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

作者头像 李华