news 2026/9/3 11:34:14

横断面地面线数据反推平距高程:从全站仪到Excel批量处理指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
横断面地面线数据反推平距高程:从全站仪到Excel批量处理指南

先准备一份可直接套用的横断面地面线数据处理思路。很多刚接触道路、水利或管线测量的朋友,拿到外业横断面数据后,第一步往往不是画图,而是要把“平距和高程”反推出来,整理成 Excel,再导入 CASS、纬地、鸿业等设计软件。这里面的“反推”其实不复杂,关键是弄清楚原始数据里到底有哪些观测值,以及目标软件到底认哪种格式。这篇文章会把原理、手算校验、Python 批量处理和纯 Excel 公式方案都过一遍,适合测绘内业新手,也适合需要批量处理几十个断面数据的工程人。

1. 横断面地面线数据反推到底在做什么

1.1 横断面地面线是什么

横断面是垂直于路线中线的竖直剖面。外业测量时,测量员通常会沿着断面方向,在地形发生变化的地方采集地面点,记录下“距离路线中线的水平位置”和“该点的高程”,这些点连接起来就是横断面地面线。

设计软件拿到横断面地面线后,才能结合设计线计算填挖面积、生成土方量报表。所以,横断面地面线数据的核心字段只有两个:平距和高程。平距又叫“距中桩距离”或者“横距”,指测点投影到路线中线上的水平距离;高程则是该点的绝对高程或相对高程。

1.2 为什么需要“反推”

外业记录的原始数据不一定直接就是平距和高程,常见情况包括:

  • 全站仪采集:记录的是斜距、天顶距(或竖直角)、仪高、棱镜高,需要换算成平距和高差。
  • RTK 采集:记录的是北坐标 N、东坐标 E、高程 H,需要先换算到断面方向上,再把坐标投影成“距离中桩的平距”。
  • 水准仪+皮尺:记录的是后视读数、前视读数、尺间隔,需要算出高差和水平距离。
  • 从地形图或三维模型提取:可能有散点坐标,需要按断面线进行切割和内插。

“反推”这个词,就是指把这些不同形态的观测数据,换算成标准的平距-高程序列。换算逻辑并不难,难的是批量处理、符号方向统一,以及最后导出成软件能识别的指定格式。

1.3 “导入 Excel 指定格式”指的是什么

不同设计软件对横断面地面线数据的导入格式要求不同,但大体可以归为三类:

格式类型常见形式适用场景
Excel 表格列序号、桩号、平距、高程人工检查、二次编辑、批量导入数据库
文本行格式桩号 / 平距,高程 平距,高程南方 CASS、纬地等软件
CSV 纯数据平距,高程 每行一对数据交换、脚本处理

很多软件并不直接读 Excel,而是读文本文件,但 Excel 常被当作“中间整理工具”。先反推成平距和高程,在 Excel 里检查、排序、去重,再另存为软件需要的格式,是目前工程内业里最稳妥的流程。本文会同时覆盖“反推计算”和“Excel 格式生成”两部分。

2. 环境准备与数据约定

2.1 原始数据来源与常见格式

处理之前,建议先把手头的原始资料统一成一种中间格式。我习惯用 CSV 或者纯文本,每行一条记录,包含以下字段:

  • 断面桩号:例如 K1+120,用于区分不同断面。
  • 测点编号:1、2、3…,方便排错。
  • 观测类型:SD(斜距)、HD(平距)、VD(高差)、天顶距、坐标等。
  • 观测值:根据观测类型不同而变化。
  • 方向:左/右,或者用负值表示左侧。

示例文本如下:

桩号,测点,类型,值1,值2,方向 K1+120,1,斜距天顶距,12.345,89.3021,左 K1+120,2,斜距天顶距,15.678,90.1045,中 K1+120,3,斜距天顶距,18.901,91.2033,右

这个文件不是最终成果,只是为了方便统一读取。如果你外业记录格式不一样,也可以先手工整理成这种结构,或者在脚本里调整列名。

2.2 本文示例环境

代码示例以常见环境为例,重点演示处理思路,版本按你自己电脑上的实际情况调整即可:

  • 操作系统:Windows 10/11,macOS 或 Linux 均可。
  • Python:3.8 及以上。
  • 第三方库:pandasopenpyxl
  • Excel:Office 2016 及以上,WPS 也可以,但另存为文本格式时菜单位置略有不同。

安装命令:

pip install pandas openpyxl

如果你的机器上同时有 Python 2 和 Python 3,注意使用pip3python3,避免装错环境。

2.3 先确定目标软件要什么格式

不要急着写脚本。先打开你要导入横断面数据的软件,找到“导入横断面地面线”或“数据文件格式说明”菜单,确认它到底需要哪种格式。下面列两个最常见的格式作为参考:

南方 CASS 常见格式:

BEGIN,K1+120 0.000,10.500 -3.200,12.300 -5.600,14.100 5.400,11.200

第一行是断面标识,后面每行是平距和高程,左侧用负值,右侧用正值,中间点平距为 0。

纬地常见格式:

K1+120 0.000 10.500 -3.200 12.300 -5.600 14.100 5.400 11.200

第一行桩号,第二行开始是“平距 高程”交替排列。

如果你的目标软件要求的是纯 Excel 表格列,那么通常是这样:

序号桩号平距高程
1K1+120-5.60014.100
2K1+120-3.20012.300
3K1+1200.00010.500
4K1+1205.40011.200

如果软件要求的是这些,那你需要做三步:反推平距高程 -> 排序 -> 导出。下面先讲反推原理。

3. 反推原理与计算方法

3.1 斜距与天顶距反推平距和高程

这是全站仪测量最常用的场景。全站仪架在已知点(通常是中桩点),后视定向后,测量断面上每个地形点,记录斜距 S、天顶距 Z(角度)、仪高 i、棱镜高 v。

平距 D 的计算公式:

D = S × sin(Z)

其中 Z 是天顶距,单位是度,sin 函数计算时需要把角度转成弧度。如果记录的是竖直角 α,也就是视线方向与水平面的夹角,则:

D = S × cos(α)

高差 Δh 的计算公式:

Δh = S × cos(Z) + i - v

如果使用竖直角:

Δh = S × sin(α) + i - v

测点高程 H:

H = 测站高程 + Δh

这个公式看起来简单,但实际处理时最容易出错的是三处:

  1. 角度单位:全站仪可能输出 度分秒(如 89.3021 表示 89°30′21″),需要先转成十进制度,再转弧度。
  2. 仪高和棱镜高:如果外业已经用“免棱镜”模式,i 和 v 可能为 0,但公式里仍要体现。
  3. 方向:斜距换算出来的平距是正值,必须根据“左”“右”标记加上负号。

度分秒转十进制度的公式:

十进制度 = 度 + 分/60 + 秒/3600

例如 89.3021 表示 89°30′21″:

89 + 30/60 + 21/3600 = 89.5058333°

3.2 根据相邻点高差与平距反推

有些外业小组用全站仪直接测平距和高差,记录里没有斜距,只有“平距增量”和“高差增量”。这种情况不需要三角函数,只需要累加。

假设中桩点平距为 0,高程为 H0,从中间往左侧第一个点平距增量是 -2.5 米,高差增量是 +0.3 米,那么:

该点平距 = 0 + (-2.5) = -2.5 该点高程 = H0 + 0.3

继续往左第二个点再给一个增量,就继续累加。右侧同理,但平距增量为正。

这种数据在外业记录里经常被简化,例如“左 2.5,+0.3”表示从中桩往左 2.5 米,高 0.3 米。整理成 Excel 时,注意用累计值,而不是增量。

3.3 根据坐标点反推平距与高程

如果外业直接测的是三维坐标(N、E、H),那么需要先知道断面中线的方向。假设中桩点坐标是 (N0, E0),断面方向方位角是 A(单位度),测点坐标是 (N1, E1),那么该点在断面方向上的投影距离 D:

ΔN = N1 - N0 ΔE = E1 - E0 D = ΔN × cos(A) + ΔE × sin(A)

这里的 D 就是带符号的平距:正值在方位角方向右侧(按右手系或根据软件定义),负值在左侧。

如果没有断面方位角,只有中桩坐标和另一个“方向点”坐标,可以先计算方向点与中桩点的方位角:

A = atan2(ΔE_方向, ΔN_方向)

然后代入上面的投影公式。

这种反推在 RTK 测量中很常见,尤其是无人机或 GNSS 采集的断面散点。需要注意:如果目标软件按“面向大桩号方向,左负右正”来定义平距,而你的方位角是从小桩号指向大桩号,那公式直接成立;如果方向相反,要加 180 度。具体定义不同软件略有差别,建议先用已知断面手工验证。

3.4 反推计算完成后必须做的一致性检查

反推不是算完就结束,建议先手工验算一两个点,再做批量处理。检查内容包括:

  • 中桩点平距是否为 0。
  • 左侧点平距是否为负,右侧点是否为正。
  • 相邻点平距是否均匀、无跳变。
  • 高程是否在合理范围,有没有突高突低。
  • 同一个点不能重复出现在两个断面中。

这一步非常关键,因为一旦批量导入后才发现符号反了,返工成本会高很多。

4. Python 实战:批量反推并生成 Excel 指定格式

下面用一个完整示例演示:读取原始 CSV,根据观测类型反推平距高程,最后写入 Excel,并且同时生成“CASS 文本格式”。

4.1 项目结构与输入数据准备

建议的文件结构:

cross_section/ ├── data/ │ └── raw_data.csv ├── output/ │ └── (程序自动生成) ├── convert_cross_section.py └── requirements.txt

requirements.txt内容:

pandas openpyxl

输入文件data/raw_data.csv内容:

桩号,测点,类型,值1,值2,方向,测站高程,仪高,棱镜高 K1+120,1,斜距天顶距,12.345,89.3021,左,100.000,1.500,1.200 K1+120,2,斜距天顶距,8.123,90.1045,中,100.000,1.500,1.200 K1+120,3,斜距天顶距,15.678,90.5123,右,100.000,1.500,1.200 K1+120,4,斜距天顶距,20.234,91.2033,右,100.000,1.500,1.200

含义说明:

  • 类型:当前示例只支持斜距天顶距,可以扩展。
  • 值1:斜距,单位米。
  • 值2:天顶距,度分秒格式。
  • 方向:左、中、右,用于给平距加正负号。
  • 测站高程:架站点的已知高程。
  • 仪高:仪器高,单位米。
  • 棱镜高:棱镜高,单位米。

4.2 编写反推计算模块

新建convert_cross_section.py,完整代码如下:

# -*- coding: utf-8 -*- """ 横断面地面线数据反推平距高程并导出 Excel 支持斜距天顶距换算,可按 CASS 格式生成文本 """ import math import pandas as pd # 度分秒转十进制度 def dms_to_decimal(dms): # 输入格式:度分秒合并为一个浮点数,如 89.3021 -> 89度30分21秒 dms = str(dms).strip() parts = dms.split('.') degree = int(parts[0]) minute_part = parts[1] if len(parts) > 1 else "0" # 分占前两位,秒占剩余位,不足两位按实际处理 minute = int(minute_part[:2]) if len(minute_part) >= 2 else int(minute_part) second_part = minute_part[2:] if len(minute_part) > 2 else "0" second = float(second_part) if second_part else 0.0 return degree + minute / 60.0 + second / 3600.0 # 计算斜距天顶距对应的平距和高程 def calc_from_sd_zenith(row): s = float(row["值1"]) # 斜距 zenith_dms = float(row["值2"]) # 天顶距,度分秒 station_h = float(row["测站高程"]) # 测站高程 instrument_h = float(row["仪高"]) # 仪高 prism_h = float(row["棱镜高"]) # 棱镜高 zenith = math.radians(dms_to_decimal(zenith_dms)) horizontal = s * math.sin(zenith) delta_h = s * math.cos(zenith) + instrument_h - prism_h elevation = station_h + delta_h direction = str(row["方向"]).strip() if direction in ("左", "L", "left"): horizontal = -abs(horizontal) elif direction in ("右", "R", "right"): horizontal = abs(horizontal) else: horizontal = 0.0 return horizontal, elevation # 主处理流程 def process(input_file, output_excel, output_cass_txt): df = pd.read_csv(input_file, encoding="utf-8-sig", dtype=str) # 存储每一行的平距和高程 df["平距"] = 0.0 df["高程"] = 0.0 for idx, row in df.iterrows(): data_type = str(row["类型"]).strip() if data_type == "斜距天顶距": h, elev = calc_from_sd_zenith(row) df.at[idx, "平距"] = round(h, 3) df.at[idx, "高程"] = round(elev, 3) else: print(f"第{idx + 1}行类型不支持,请检查: {data_type}") # 生成 Excel output_df = df[["桩号", "测点", "方向", "平距", "高程"]] output_df.to_excel(output_excel, index=False, sheet_name="横断面地面线") # 生成 CASS 风格文本 with open(output_cass_txt, "w", encoding="utf-8") as f: for station, group in df.groupby("桩号"): f.write(f"BEGIN,{station}\n") for _, row in group.iterrows(): f.write(f"{row['平距']:.3f},{row['高程']:.3f}\n") print(f"Excel 已生成: {output_excel}") print(f"CASS 文本已生成: {output_cass_txt}") if __name__ == "__main__": process( input_file="data/raw_data.csv", output_excel="output/横断面地面线.xlsx", output_cass_txt="output/横断面地面线_cass.txt", )

代码说明:

  • dms_to_decimal函数把度分秒转成十进制度。这里使用了常见的“浮点拼接”格式,例如89.3021转成89 + 30/60 + 21/3600
  • calc_from_sd_zenith函数根据斜距和天顶距计算平距和高程,最后按方向修正符号。
  • process函数读取 CSV,遍历每一行,调用计算函数,再分别写出 Excel 和 CASS 文本。
  • 输出平距和高程都保留 3 位小数,工程上一般到毫米级,实际按项目要求调整即可。

运行命令:

mkdir -p output python convert_cross_section.py

如果是在 Windows CMD 中,mkdir -p不支持,可以手动新建output文件夹,或者直接运行脚本让程序自动检查目录。建议在脚本里加上:

import os os.makedirs("output", exist_ok=True)

然后把process函数开头加上目录创建逻辑,避免每次手建目录。

4.3 编写 Excel 按指定列顺序导出的版本

有时候并不需要 CASS 文本,而是只要 Excel 表格列,比如:

序号桩号平距高程备注

可以修改process函数里的输出部分:

# 生成指定格式 Excel result_list = [] for idx, row in df.iterrows(): result_list.append({ "序号": idx + 1, "桩号": row["桩号"], "测点": row["测点"], "方向": row["方向"], "平距": row["平距"], "高程": row["高程"], "备注": "" }) result_df = pd.DataFrame(result_list) result_df.to_excel("output/横断面指定格式.xlsx", index=False, sheet_name="地面线")

运行后打开 Excel,可以看到每一行是一个断面测点,平距负左正右,高程已经按原始数据换算出来了。列宽如果不好看,可以后续在 Excel 中手工调整,或者用 openpyxl 自动设置列宽。

4.4 运行与验证

程序运行成功后,输出两个文件。打开output/横断面地面线.xlsx,应该看到类似内容:

桩号测点方向平距高程
K1+1201-10.451101.006
K1+12020.00099.154
K1+120312.608100.861
K1+120419.256102.867

这里我用了虚构的原始数据计算,数字本身不是真实工程数据,重点看逻辑。你可以把原始数据里的斜距、天顶距替换成你自己外业记录的值,重新运行即可。

验证时可以找一个已知点手工计算一次,确认平距和高程是否和程序输出一致。比如第一个点斜距 12.345,天顶距 89°30′21″,在忽略仪高和棱镜高的情况下,平距约为 12.345 × sin(89.5058333°) ≈ 12.3447,程序会保留 3 位小数输出 12.345,属于正常现象,因为斜距本身也只精确到毫米。

5. 纯 Excel 方案:不写代码也能反推

如果只是少量断面数据,不想写 Python,完全可以用 Excel 公式完成。下面演示核心思路。

5.1 使用公式计算平距和高程

假设原始数据放在 Excel 的 A 到 G 列:

  • A2:斜距
  • B2:天顶距(度分秒)
  • C2:测站高程
  • D2:仪高
  • E2:棱镜高
  • F2:方向(左/中/右)

先添加辅助列,把天顶距转成十进制度:

在 G2 输入:

=INT(B2)+INT((B2-INT(B2))*100)/60+((B2-INT(B2))*100-INT((B2-INT(B2))*100))*100/3600

这个公式比较长,但思路就是把89.3021拆成度、分、秒。更直观的做法是先把度分秒拆到三列:

十进制度
893021=A2+B2/60+C2/3600

假设十进制度在 J2 列,那么平距和高程可以这样写:

平距: =IF(F2="左", -A2*SIN(RADIANS(J2)), A2*SIN(RADIANS(J2))) 高程: =C2 + A2*COS(RADIANS(J2)) + D2 - E2

如果方向是中,平距本来应该为 0,但实际斜距可能并不完全垂直,所以可以直接用 IF 判断“左”“右”,其他情况都按 0 处理。

5.2 自动生成指定格式输出列

得到平距和高程后,建议不要在原表上修改,而是新建一个 Sheet,用公式引用原始计算结果:

在“输出”工作表 A2 输入:

=IF(原始数据!F2="左", -原始数据!G2, 原始数据!G2)

然后手动下拉填充。这样可以保留原始数据,同时生成目标表格。

如果要把平距和高程拼成 CASS 文本行,可以用&拼接:

=TEXT(G2,"0.000")&","&TEXT(H2,"0.000")

然后把输出列复制到记事本,另存为.txt即可。

纯 Excel 方案的优点是即改即看,适合小批量数据;缺点是公式出错时不容易发现,尤其是度分秒拆分,建议每个公式都算一个已知点验证。

6. 常见问题与排查思路

6.1 平距符号反了

问题现象常见原因解决思路
左侧点显示为正,右侧点显示为负方向判断逻辑写反,或软件左右定义与习惯不同先确认目标软件的左右定义,再反转平距符号
中桩点平距不是 0方向字段没有“中”这个值,被当成左或右把所有非左右的情况统一赋值为 0
平距计算出来和手工算不一致天顶距的度分秒转换错误,或角度单位问题手工算一遍该点,对比是度分秒拆错还是公式写错

6.2 高程偏大或偏小

问题现象常见原因解决思路
高程整体偏大仪高未减或棱镜高未加检查仪高和棱镜高是否填反
高程整体偏小棱镜高未减或仪高未加检查公式中的加减号
个别点高程明显异常斜距或天顶距记录错误回到外业记录,核对原始观测值

如果外业用的是免棱镜模式,棱镜高应为 0,但在内业整理时不能想当然,要确认外业记录表里的说明。

6.3 Excel 打不开或写入失败

问题现象常见原因解决思路
to_excel报错没有安装 openpyxl执行pip install openpyxl
Excel 文件被占用输出文件正被 Excel 打开关闭 Excel 后重新运行脚本
路径中带中文乱码编码问题统一用utf-8-sig读取 CSV,Excel 路径避免特殊字符

6.4 CASS 导入后断面点乱序

问题现象常见原因解决思路
导入后点连成折线交叉平距没有按从小到大排序在脚本里按桩号、平距排序后再输出
同一桩号出现两次原始数据里有重复断面名检查桩号字段,统一命名
高程出现 0 或负值异常数据缺失或计算时 NaN用 pandas 的dropna()清理缺失行

排序建议在生成文件之前完成,尤其是 CASS 文本格式,靠数据顺序决定显示顺序。可以在process函数里加上:

df = df.sort_values(["桩号", "平距"], kind="mergesort")

注意kind="mergesort"是稳定排序,可以保持相同平距点的原始顺序。

7. 最佳实践与工程建议

7.1 原始数据先备份

外业数据一旦内业处理出错,重新测量成本很高。建议把原始 CSV 或全站仪导出文件单独存放,不直接修改原始文件。脚本里所有输出都写到output目录,避免覆盖原数据。

7.2 统一方向符号定义

在处理开始前,先确认目标软件的横断面方向定义:

  • 面向大桩号方向,左侧是负还是右侧是负?
  • 中桩点的平距是 0 还是某个固定值?
  • 多个断面是否共用一个方向定义?

建议在脚本里用常量定义方向规则:

LEFT_SIGN = -1 # 左侧平距为负 RIGHT_SIGN = 1 # 右侧平距为正

这样以后遇到软件方向定义不同,只需要改这两个常量,不用改计算逻辑。

7.3 单位与精度

工程数据常见的单位是米,但有些全站仪导出的平距单位可能是英尺,高程可能是厘米,处理前要确认。建议在脚本里增加一个单位换算步骤:

UNIT_METER = 1.0 # 如果原始数据单位是厘米,则除以 100;如果是毫米,则除以 1000

输出精度建议保留 3 位小数,满足毫米级精度;如果项目要求更高,可以保留 4 位或更多,但要与设计软件精度匹配。

7.4 异常数据自动标记

批量处理几十个断面时,很难人工逐点看。建议在脚本里增加简单的异常检测:

  • 相邻两点平距差小于 0.001 米,可能重复。
  • 相邻两点高差超过设定阈值(例如 5 米),可能记录错误。
  • 单个点的高程明显偏离断面平均高程。

示例代码:

# 找出高差异常的点 df = df.sort_values(["桩号", "平距"]) df["高差"] = df.groupby("桩号")["高程"].diff().abs() abnormal = df[df["高差"] > 5.0] if not abnormal.empty: print("存在高差异常点:") print(abnormal[["桩号", "测点", "平距", "高程", "高差"]])

这个检查不能替代人工判断,但能快速定位疑点。

7.5 导出文件做双重检查

在导入设计软件前,建议用记事本或 Excel 打开生成的文本文件,抽查以下内容:

  • 每个断面是否都有 BEGIN 标识。
  • 平距是否单调递增或递减(排除排序问题)。
  • 高程是否在合理范围。
  • 编码是否为 ANSI 或 UTF-8(取决于软件要求)。

如果软件提示“数据行格式错误”,大概率是分隔符问题。CASS 通常接受逗号分隔,有些软件接受空格或 Tab,另存为时注意选择。

7.6 权限与数据安全

如果数据来自正式测量项目,处理过程中需要注意:

  • 不在非授权环境传播断面数据。
  • 脚本只做本机处理,不把数据上传到第三方在线工具。
  • 导入导出时使用项目统一命名规范,例如K1+120_横断面_平距高程.xlsx

8. 总结与进一步学习

横断面地面线数据反推平距高程导入 Excel,核心可以概括成四步:

  1. 明确原始数据里有哪些观测值,判断需要用哪种公式。
  2. 手工算一个点,验证公式和符号规则。
  3. 用脚本或 Excel 公式批量计算,输出平距和高程。
  4. 按目标软件的导入格式导出文本或 Excel,并在软件里验证。

对于大多数测量内业场景,斜距天顶距换算和坐标投影是最常用的两种反推方式。本文的 Python 示例只实现了第一种,你可以在此基础上扩展坐标投影、断面切割、自动排错等功能。

进一步学习可以从这几个方向入手:

  • 学习南方 CASS、纬地、鸿业等软件的横断面导入格式细节,不同版本可能有差异。
  • 研究 RTK 断面测量数据的处理,重点掌握坐标投影到断面方向的计算。
  • 练习用 pandas 做更多数据清洗,比如去掉重复断面、补全缺失方向、批量重命名。
  • 如果断面数量很大,可以考虑用脚本直接生成设计软件需要的文本文件,减少 Excel 中转步骤。

动手处理一批真实数据,是掌握这套流程最快的方式。建议先用一小段数据跑通脚本,再处理完整断面,逐步把手工操作替换成自动化处理。如果本文对你有帮助,可以收藏备用,也欢迎在实际使用后根据自己的工程需求修改代码。

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

FastGPT 知识库问答平台:5分钟跑起可视化 AI 工作流

FastGPT 知识库问答平台:5分钟跑起可视化 AI 工作流 【免费下载链接】FastGPT FastGPT is a knowledge-based platform built on the LLMs, offers a comprehensive suite of out-of-the-box capabilities such as data processing, RAG retrieval, and visual AI w…

作者头像 李华
网站建设 2026/9/3 11:30:47

情感关系分析工具:技术实现与隐私保护实践

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

作者头像 李华
网站建设 2026/9/3 11:30:19

2024外卖CPS小程序源码全解析:从架构设计到部署运营实战

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

作者头像 李华
网站建设 2026/9/3 11:29:11

软考初级程序员高效备考指南:五件套体系与真题实战策略

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

作者头像 李华
网站建设 2026/9/3 11:28:01

MINOX GT-E/M.D.C胶片相机故障维修:从光圈粘连到电路修复全流程

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

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

KOReader 上手指南:30分钟搞定你的墨水屏书库

KOReader 上手指南:30分钟搞定你的墨水屏书库 【免费下载链接】koreader An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices 项目地址: https://gitcode…

作者头像 李华