news 2026/10/5 6:09:23

室内植物养护实验:数据驱动 vs 直觉,如何用传感器量化种菜

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
室内植物养护实验:数据驱动 vs 直觉,如何用传感器量化种菜

这篇“Project Melon”项目的核心就是围绕室内植物养护的两种路线之争:一边是靠传感器、日志和量化指标做决策的Data-Driven路线,另一边是无数爱好者“养挂了再说”的Gut Feeling路线。我用薄荷、番茄和几棵草莓做了一组对照实验,把光照、湿度、基质含水率这些关键参数全部量化,记录了一整轮生长周期的数据。这篇内容会完整拆解我的方案选型、传感器配置、数据记录表设计,以及那些“数据明明说没事,植物却死了”的翻车案例,也聊聊什么时候该放下数字、相信直觉。

1. 项目整体设计与思路拆解

1.1 核心理念:把种菜变成可回归的测量系统

先说清楚我为什么要做“Project Melon”。室内植物养护在多数人眼里是“经验活”——浇不浇水用手指戳土,光照足不足靠肉眼判断,肥料什么时候加全凭手感。我不是说这套方式不行,我家里那盆绿萝确实是被我“凭感觉”养活的,但问题是:当植物出现问题,这套经验系统无法回溯。你没法回答“上一次基质水分低于多少的时候发生了什么”,也没法回答“过去七天光照累计值到底够不够”。

所以我做了个决定:选了一批对环境变化敏感的植物,搭建一套能连续记录光照强度(lux)、基质体积含水率(VWC)、空气温湿度、电气导率(EC)的系统,用一整轮生长周期做对照。一组按传感器数据和喂养逻辑操作,另一组完全靠人工手感判断。对比目标只有一个——哪套方法能更快发现问题、更准判断浇水时机、更能稳定产出健康植株。这个思路本质上就是把“种菜”转成“测量系统”,让每一个操作决策都有数字依托,后续复盘时有数据可查,而不是对着枯叶猜原因。

我选择的植物组合是薄荷、矮种番茄和草莓。为什么是这三样?它们对环境变化的敏感度差异非常大。薄荷是典型的“给点阳光就灿烂”,对失误容忍度极高;番茄对光照和水肥波动反应剧烈,叶子状态几乎当天就能反映环境问题;草莓介于两者之间,根系脆弱,对基质透气性和水分稳定性要求最苛刻。这三个敏感梯度放在一起,数据系统的价值才能被放大——如果全种薄荷,凭感觉和靠数据根本不会有区别。

1.2 方案选型:为什么最后选了这套“轻量级”配置

在设备选型上我踩过不少坑,分享出来帮你省点学费。第一版方案我考虑过直接上大型环境控制系统的全套方案,配多通道数据采集器、实验室级别的pH计,甚至想过接一个自动灌溉电磁阀。后来算了一笔账:整个项目周期才三四个月,核心目标是“验证数据驱动逻辑是否优于直觉”,而不是搭建一套生产级种植系统。所以我砍掉了所有执行端自动化,只保留感知侧的持续记录。

最终配置分为三块:

  • 光照:两个USB供电的全光谱植物灯,搭配一个照度传感器,每30分钟记录一次lux值,并换算成每日光照累计值(DLI,Daily Light Integral)。
  • 基质与环境:每盆埋入一个土壤三合一传感器,测量VWC(体积含水率)、温度和EC;空气温湿度用两个独立的小型温湿度计,布点在植株叶冠高度。
  • 记录与展示:所有数据统一汇总到本地表格,并做了两个简单面板——一个看实时数值,一个看24小时趋势。

这套配置总成本不高,核心开销在传感器上,但得到的收益已经覆盖我的全部需求。选它而不是更贵的设备,还有一个原因——项目要回答的问题本质上是“数据记录频率和精度达到什么水平,才能有效指导日常养护决策”,为了回答这个问题,我不需要实验室级别的精度,我需要的是能稳定跑满整个生长周期、不折腾、断电自动恢复的系统。

这里的核心选型逻辑是:数据系统的最小可用闭环必须包含感知、记录、判断、行动四步。感知到位后,就算判断和行动仍然靠人手工完成,数据的价值也已经体现出来了——因为决策有了依据,问题有了回溯路径,那就是“Data-Driven”最实在的落地方式。

1.3 变量控制与实验边界

对照组设计上我也做了约束。两组植物用了同样的基质配方、同样的花盆尺寸、放在同样的环境区域(避免房间不同位置带来的温差)。区别只在于操作逻辑:

  • 数据组:严格按照传感器读数执行操作。VWC降到25%以下才浇水;EC超过1.8 mS/cm开始考虑调整;DLI连续三天低于12 mol/m²/d就增加补光时长。
  • 直觉组:每天早晚检查一次,用手指戳土判断干湿、肉眼观察叶色和形态,想浇就浇,完全模拟普通爱好者最自然的状态。

边界条件我明确划出来:不做病虫害干预对比,因为那是另一个独立课题;不比较口感、风味这类主观指标,只比较存活率、株高增量、叶片数增量、花果数量。目标指向清晰之后,数据才有对比意义,才不会陷入“我家的薄荷就是比你家长得好”这种无解争论。

2. 核心细节解析与实操要点

2.1 传感器选型与可靠性排查

整套系统里最值得细说的是土壤三合一传感器。市面上这类传感器分两大类:电容式(测VWC)和电阻式(测EC)。两者的区别很容易被商家故意模糊掉。

电容式传感器测的是基质介电常数变化,水多介电常数高,读数相对稳定,寿命也长。电阻式传感器靠两根金属探针测电流,受基质盐分积累影响极大,读数漂移会越来越严重。我最后选了电容式测水分、独立探针测EC的组合方案,但仍然遇到一个坑:EC探针在液肥浇灌后一周左右开始出现明显漂移,用清水校准后恢复。这个现象不是传感器坏了,而是基质中盐分在探针表面结晶导致的接触电阻变化。解决办法很粗暴但有效:每次浇肥后隔一天,用清水对探针位置做一次局部淋洗,让读数恢复到真实水平。

你要是不想折腾这些细节,我建议至少避开那些几十块包邮、探针直接裸露的廉价产品。它们不是不能用,但数据漂移会消耗你大量排查时间,反而违背了搭建数据系统的初衷。传感器系统稳定优先于精度,是这个项目最深刻的教训之一。

2.2 关键指标解读:从读数到动作

很多人买了传感器,也记录了数据,但不知道到什么数值该干什么事。这里我把我整理出来的动作阈值表给你,基于我的品种和基质得出的经验值,不同植物和环境会有偏移,但框架通用:

指标读数范围对应动作
VWC(基质体积含水率)25%~45%正常区间,无需干预
VWC< 25%当天浇透,浇到盆底出水
VWC> 50% 且持续三天暂停浇水,检查盆底积水
EC(基质电导率)0.8~1.5 mS/cm正常范围,维持当前施肥节奏
EC> 1.8 mS/cm停止施肥,清水淋洗一次
空气温度18~28 ℃适合多数室内叶菜和果菜
空气相对湿度40%~70%正常;低于40%注意叶尖干枯
单日DLI(光照累计)< 8 mol/m²/d叶菜能活但长不快
单日DLI12~20 mol/m²/d番茄、草莓的果期推荐区间

这里需要解释一个容易误读的指标:DLI不是照度,是照度对时间的积分值。我用的照度传感器输出的是lux,需要换算成光合有效辐射(PAR,单位是μmol/m²/s),再用PAR乘光照时长换算成DLI。粗略换算系数是:阳光直射下,1 lux约等于0.018 μmol/m²/s;全光谱LED灯下,这个系数会高一些,接近0.02。我算过自己那盏灯的出光效率,最后采用0.019作为换算系数,误差摊到整个生长周期可接受。

举一个真实例子说明换算过程:我的补光灯实测叶冠照度是8000 lux,每天开12小时。换算PAR就是8000乘以0.019等于152 μmol/m²/s,这个值在室内种植算中等偏上;DLI等于152乘以3600(秒)乘以12(小时)再除以1000000,等于6.57 mol/m²/d。这个数值对薄荷够用,对番茄果期偏低,所以我数据组在番茄开花后把补光时长加到了16小时,DLI提升到8.76,叶子形态一周内就有肉眼可见的改善。

2.3 记录频率与数据噪音

系统上线的前两周我犯过一个新手错误:把记录频率调到每5分钟一次。结果是数据量大到根本看不过来,而且VWC每次浇水后都有一个急速上升再缓慢下降的过程,5分钟间隔捕捉到的是大量震荡噪音,而不是趋势信号。

后来我把频率调整为:VWC每30分钟记录,空气温湿度每15分钟记录,光照每30分钟记录。这样每天每个指标大约48个数据点,足够画出一条平滑的日变化曲线,又不会淹没在噪音里。经验值如下:室内环境下,环境参数(温湿度、光照)变化通常是缓慢的,30分钟间隔完全够用;基质水分的变化以小时计,30分钟也已经很充裕。你不需要像做科学实验那样高频采集,数据驱动养护的关键是趋势连续,而不是采样密集。

还有一件事非常容易被忽略:花盆位置每两周挪动一次,哪怕只挪了十几厘米,光照读数就会有明显变化。我为此做了一个额外记录列,专门标注每次挪盆的日期和方向,避免后续分析数据时把位置变化误判成灯管衰减。传感器系统的数据可靠性,往往不是由传感器本身决定的,而是由你记录了多少“干扰变量”决定的。

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

3.1 数据基础设施搭建

整个系统的主干数据流是:传感器实时读写到本地网关,网关定时汇总成CSV,CSV落盘到电脑后用表格脚本做清洗和可视化。

传感器部分我用的是支持modbus协议的设备,网关通过USB接到一台长期开机的低功耗小主机上。你可能会觉得“长期开机”很费电,实际上这台小主机整机功耗不到10瓦,一个月电费几块钱,比频繁手动记录省心得多。如果你手头没有闲置小主机,用树莓派或者旧手机改造成采集终端也完全可行,关键是要有一个能7x24小时跑定时任务的环境。

数据采集脚本我做了三件事:读取传感器数值、带上时间戳写入CSV、同时把最新值同步到一张状态表供面板查询。这里有几个细节值得注意:

  • 所有传感器数据必须带统一的时间戳来源,不要依赖传感器内置时钟,直接用系统时间,避免多设备时间错位。
  • CSV文件名按日期分片,避免单文件过大,同时方便后续按天回溯。
  • 数据采集脚本要写异常处理,传感器偶尔离线是正常的,断线自动重连比崩溃重跑重要得多。

3.2 浇水决策闭环演练

数据组最核心的日常操作是浇水,我以一次番茄浇水的完整决策过程为例,给你拆解整个“数据→判断→行动→反馈”的闭环。

某天上午10点,状态表显示番茄盆VWC读数为24%,前一天同期是31%,24小时下降7个百分点,下降速率为每分钟约0.00005。结合过去五天的趋势,VWC每天下降速率在5到8个百分点之间,说明根系吸水活跃,基质排水也正常,没有积水闷根迹象。EC读数1.2 mS/cm,在正常区间内;空气温度26℃,湿度52%,叶冠层光照累计到当时已经达到32000 lux·h,预计全天DLI能到14左右。

基于这组数据,我判断当天需要浇水,浇水量按照盆土体积计算——盆土约4升,目标是把VWC从24%抬升到40%,按照该基质每提升1% VWC需要约12毫升水的经验值估算,理论需水量约192毫升。实际浇水时我留了余量,加到了大约250毫升,浇透至盆底连续出水三滴,然后静置30分钟让基质充分吸水,再读取后渗漏平衡值。

浇完水一小时后,VWC稳定在43%,比目标值略高,但没有超过50%警戒线。当天晚上关闭补光前再看一次读数,确认夜间VWC下降正常,这个浇水动作就完成了。整个过程记录在案,三天后对比发现透水后VWC回落曲线平滑,没有二次高峰,说明基质透气性良好、根系状态健康。

这样的决策闭环看起来比“戳土浇水”麻烦,但积累两三个周期之后,你会形成一套对植物状态非常敏锐的“数据手感”——看见VWC曲线斜率变陡,就知道根系更活跃了;看见夜间EC升高,就知道基质盐分开始富集。这套手感建立在量化基础之上,比纯经验更可靠。

3.3 光照管理与DLI调节实例

光照管理是室内种植最复杂、也最值得数据化的环节,因为人眼对光照强度的判断非常不靠谱——同一个房间,晴天和阴天的照度差三四倍,肉眼却很难察觉。

我的数据组在番茄果期遇到一次明显的生长放缓,叶片颜色偏浅,节间拉长。查数据发现前三天DLI都不到7,连续阴天加上补光灯时长未调整,导致光合产物积累不足。当天我就做了一个决策:把补光灯时长从12小时加到16小时,同时把灯具高度从叶冠上方30厘米降到22厘米,整体光强提升后DLI回升至11.5。

这里要注意一个安全边界:LED补光灯距离叶冠太近会灼伤嫩叶,尤其是草莓这种叶片薄的植物,22厘米已经是我试过的最低安全距离,再低就会出现叶缘发白的情况。调整后的三天内,番茄新叶颜色明显转深,节间缩短,花果数量开始增加。

直觉组那段时间恰好也出现类似光照不足的症状,但操作者判断成“缺肥”,追加了一次高氮液肥,结果叶片更软、茎秆徒长,问题反而加重。这个对照案例非常典型——不是直觉完全不可靠,而是当环境因素与营养因素呈现相似症状时,没有数据支撑的经验判断很容易走向错误归因。这就是“Data-Driven”在室内种植中最核心的价值:避免归因错误。

3.4 数据记录表设计与后期复盘

记录表的设计直接决定后期复盘是否顺畅。我最终用的是长表结构——每一行代表一条记录,包含时间、盆号、植物品种、指标名称、数值、单位、操作标记(浇水/施肥/挪盆/无操作)和备注。长表看单个指标很乱,但配合透视表就能按盆号或指标拆出任意维度。

我额外加了一列“观察日志”,专门记录肉眼看到的异常,比如“新叶叶缘轻微卷曲”“叶背发现一个白色小点”。这些主观观察和客观数据放在同一行,复盘时能快速定位“当VWC降到27%且叶背出现白点时,两天后发生了红蜘蛛”。把主观观察纳入记录体系,是我所有传感器里最便宜但价值最高的一个“传感器”。

后期复盘我固定每周日做一次:把本周所有曲线扫一遍,标记出每个盆的VWC最低值、EC峰值、DLI累计量,和上周对比,找出异常趋势。整个过程的产物是一张每周趋势对比图,就能直观看到偏差,不用翻原始数据日志。这条基于模板的复盘路径,直接帮助我在三个月内建立了一套“当前状态是否正常”的直觉,且这个直觉是有据可查、可以持续进化的。

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

4.1 传感器数据“看起来不对”的排查顺序

整套系统运行三个月,传感器和数据链路出的问题比植物的问题还多。我把典型故障现象和排查顺序整理成了一张速查表:

现象排查顺序
VWC读数恒定不变先查探头是否脱离基质接触;再查线缆是否断线;最后查采集脚本是否卡死
EC读数持续走低先看是否刚浇过大量清水(稀释效应);再查探针是否结盐;最后看基质是否真的缺肥
空气温度读数偏高5℃以上先看传感器是否被补光灯直射;再查通风是否被遮挡;最后确认传感器在校准周期内
光照读数突然为0先查传感器朝向是否被动过;再查遮光物;最后查USB供电是否中断

最常见的其实不是硬件故障,而是传感器位置发生了变化——浇水时碰了一下探头、灯管调整时把照度计挡住了一半,这类物理干扰对数据的影响远大于传感器自身精度误差。所以我每次浇水、挪盆、调灯之后,都会顺手看一眼状态表,确认读数是否合理跳变,而不是等复盘时对着异常曲线猜原因。

4.2 数据驱动组的“过度干预”陷阱

项目运行到第五周时,数据组出现了一次明显的人为问题:我因为过于依赖读数,在EC值达到1.9 mS/cm时进行了一次清水淋洗,但忽略了一个关键信息——前一天刚施过肥,EC值有短时冲高是正常现象,根系还没来得及吸收大部分养分,基质中的可溶性盐含量其实在正常波动范围内。

这次过度干预的结果是:淋洗把可溶性养分大量带走,EC降到0.6 mS/cm,直接低于适宜区间下限。后续三天,薄荷叶色开始发黄,生长停滞,我不得不重新补施平衡肥才恢复过来。这个教训让我理解了一条核心边界:数据是告诉你趋势和偏差,不是触发每个跳变都要立刻干预的警报器。大多数情况下,指标在阈值附近短暂波动是系统自我调节的正常过程,真正需要动作的是持续偏离,而不是瞬时越线。

所以我后来在表格上加了“持续偏离判定”的逻辑:连续三次读数超出阈值区间,或者单次超出幅度超过阈值的20%,才触发操作。这个调整之后,无效操作明显减少,植物整体状态也更稳定。

4.3 直觉组翻车案例分析:为什么Gut Feeling会失灵

直觉组在整个对照周期里最有价值的产出,是三张完整的翻车病历。最典型的是草莓那次:操作者凭手感判断盆土表面干燥,连续三天每天浇水少量,结果基质下层长期处于高湿状态,引发根腐。等发现时叶子已经大面积萎蔫,回天乏术。

复盘时我用数据组同期的记录做了模拟对比:如果当时看一眼VWC曲线,就会发现表层干得快、下层水分充足的状况——这种“假干”是浅浇频繁的典型特征。数据组的VWC传感器伸到基质中下层,正好能捕捉到这种上下分层的含水率差异。直观感受是表层干,但真实情况是中层以下依然湿润,经验判断输在“只能摸到表面,摸不到根系活动层”。

类似的还有番茄的“看起来缺肥”翻车,实际是光照不足引发的徒长。靠肉眼和手感做判断的问题不是“不努力”,而是信息量不够。它可以覆盖80%的常见情况,但那20%的非典型状况一旦发生,没有数据回溯就只能从头猜起。

4.4 数据系统出问题时临时回到直觉模式

传感器系统在第六周时出过一次连续离线故障,整整两天没有任何数据进账。那两天我临时切回直觉模式,靠戳土、掂盆重量、看叶色来管理植物。这段经验弥足珍贵——它让我意识到,数据驱动并不意味着丢掉手感,而是把手感放到辅助位置上。

恢复正常后,我去对比那两天的操作记录和传感器补录后的数据,发现自己凭直觉的浇水判断大体正确,但在是否调整补光灯时长上判断失误,少补了约两个小时的照光。这个偏差肉眼根本看不出来,但两周后番茄的花序数量差距清晰可见。数据系统的价值在故障期反而体会更深——它能稳定地帮你覆盖那些“凭直觉注意不到”的维度。

5. 什么时候该相信直觉:数据系统之外的盲区

5.1 经验判断真正擅长的事

整个项目做下来,如果结论是“数据驱动全面碾压直觉”,那是失真。真实情况是:叶色深浅、新叶形态、节间长度这些综合形态指标,老手扫一眼的判断速度远快于我翻开趋势图分析的速度。数据的强项在日常繁琐的监控和异常趋势的早期发现,直觉的强项在快速综合判断全局状态。

比如直觉组那位操作者(一个养了八年花的朋友),他能在十秒内判断出一株植物是否处于“亚健康但还有救”的状态,靠的是大脑综合了颜色、纹理、姿态、盆土表面颗粒度等大量信息。我虽然不认同他的浇水逻辑,但这种全局快速分类的能力确实值得学习。所以到了项目后期,我的操作模式变成了:每周查看数据趋势,识别潜在风险;每天快速目视检查,做宏观状态评估;两者交叉验证,而不是互相替代。

这个习惯的形成,本质上就是数据框架和经验直觉的有机结合。数据告诉你要问什么问题,直觉告诉你这个问题发生在什么地方。

5.2 数据永远无法替代的部分:植物的“个体差异”

同一批播种、同一盆基质、同一个传感器的两颗草莓苗,生长轨迹仍然有明显差异。一株丰产,一株瘦弱,数据曲线却几乎没有差别。这说明数据驱动在“群体平均状态”上可靠,在处理“个体差异导致的局部异常”上并不擅长。传感器测的是基质和环境,而根系健康和微生物群落状态等变量,目前没有可靠的低成本感知手段。

这种情况下,单独看数据反而会误导。比如瘦弱那株,基质VWC读数正常,EC正常,DLI正常,但叶子就是发蔫。我按数据判断“一切正常”,直觉却告诉我“它有病”。结果证明直觉是对的——根际发生了局部病害。后来我调整策略:对这类数据无法覆盖的个体异常,直接靠形态判断做隔离处理,不在数据层面过度纠结。数据帮你管理大概率事件,直觉帮你兜住小概率风险。

5.3 最终收敛:数据是参谋,不是司令

这个项目做到第三个月的时候,我得出了一条核心结论:数据驱动和直觉经验不是非此即彼的替代关系,而是在不同决策层级上的协同关系。数据提供横向的连续观察能力和纵向的历史回溯能力,直觉提供全局快速判断和个体差异感知。两者结合的最佳模式是:用数据做常规决策的默认模板,用直觉做异常触发时的快速分类,再用数据验证直觉判断的准确性。

如果你也想做类似的转型,我给三个可落地的建议:第一,先解决记录问题,不需要一步到位买一堆传感器,从温度计加纸质记录表开始也能建立数据习惯;第二,给每个操作动作打标签,让你的数据带因果信息,而不只是环境快照;第三,每两周抽半小时复盘数据,建立你自己的阈值经验,别人的数值永远只能作参考。

我自己在项目结束后,把整套传感器系统保留了下来,但不再每天盯着面板看。数据已经成了背景运行的基础设施,出现告警才介入,日常维护靠每隔两天的快速目测。某种意义上说,数据驱动的最终目标,是让你对植物状态形成更准确的整体直觉——数据框架不再需要时刻“驱动”你,而是变成你决策系统的一部分,沉到潜意识里去。

最后再分享一个体会:养室内植物最大的乐趣不是“植物长得有多好”,而是你对自己判断系统的掌控感。数据不是把种植变成冷冰冰的数字游戏,而是帮你把每次失败变成一次可查询、可复盘、可避免重蹈覆辙的经验。这个闭环一旦建立,你会发现自己养的不只是植物,还有一套持续升级的决策能力。

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

分位数回归原理与Stata实操:从均值视角到全貌视角的异质性分析

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

作者头像 李华
网站建设 2026/10/5 6:08:41

瑞芯微RV1126B实战:AI-ISP实现0.01Lux低光彩色成像

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

作者头像 李华
网站建设 2026/10/5 6:08:21

Excel模板自动计算AQI:线性插值与首要污染物识别全解析

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

作者头像 李华
网站建设 2026/10/5 6:07:55

车牌字符识别实战:VOC数据集转YOLO格式与YOLOv8训练全流程

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

作者头像 李华
网站建设 2026/10/5 6:07:41

MRAM与8位MCU工业存储方案:SPI驱动、掉电保护与实战避坑

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

作者头像 李华