BIOS与UEFI启动对比:GPT分区、Secure Boot及装机维护指南
简介BIOS启动与UEFI启动比较说明是一份用于厘清传统主板引导与新一代固件接口差异的技术文档面向装机用户、系统运维人员和计算机初学者可帮助读者快速消除对Legacy与UEFI模式、MBR与GPT分区的常见困惑。文档从UEFI定义切入系统梳理了UEFI在安全性、启动配置灵活性和大容量硬盘支持上的三大优势并以步骤形式拆解其运行流程还简要展望了服务器与数据中心场景下的应用前景。内容覆盖安全启动的证书信任机制、EFI Shell手动加载驱动等实操细节既适合日常装机时判断如何设置启动项也适合备考或培训时作为基础讲义。资源共1个docx文件大小约17KB文本精炼便于阅读和二次编辑目前已有252人浏览学习适合需要快速理解BIOS与UEFI启动区别的读者。1. 拆解这份启动方式对比BIOS 与 UEFI 到底差在哪如果你最近装过系统、换过硬盘或者折腾过启动盘大概率见过这两个词BIOS 和 UEFI。很多人第一次遇到 UEFI 是在 PE 进不去、启动盘引导失败或者新买的 3TB 硬盘插上怎么都不识别的时候那时候翻论坛帖子一堆人让改 CSM、改 GPT、关 Secure Boot看得一头雾水。这份《BIOS启动和UEFI启动比较说明》虽然只有两页但把 UEFI 相对传统 BIOS 的三大核心差异讲得很清楚安全性、启动配置灵活性以及大容量硬盘支持。对要做系统维护、装机、运维或者自学固件启动流程的人来说这是一份能快速建立认知框架的入门资料。本文会把文档里的关键结论拆开加上实际操作和踩坑经验让你看完不仅知道它说了什么还能顺手去验证和复用。2. 两种引导方式的关系UEFI 不是 BIOS 的升级包是另一套规则2.1 从文档原文看 UEFI 定义的边界文档对 UEFI 的定义是一种详细描述类型接口的标准用于操作系统从预启动环境自动加载到操作系统上。这里容易误解的点在于很多人把 UEFI 当成 BIOS 的新皮肤或者升级补丁实际上 UEFI 定义了固件与操作系统之间的完整接口协议它替代的是 BIOS 在主板上的地位但介入更早、管的更多。标准化的好处是不同主板厂商的 UEFI 在启动逻辑上是趋同的不像传统 BIOS 各家改得千奇百怪。文档里提到的“UEFI启动是一种新的主板引导项被看做是近 20 多年历史的 BIOS 的继任者”这个判断在行业里基本成立但有个细节值得注意UEFI 标准本身不规定必须快真正贡献开机速度的是它驱动的启动流程和与之搭配的硬件环境。部分老教程会把 UEFI 和快速启动画等号这是不严谨的。2.2 为什么说传统 BIOS 是被 MBR 卡的文档提到传统 BIOS 受限于 MBR默认无法引导超过 2.1TB 的硬盘。这里需要往深挖一层MBR 分区表只有 64 字节空间存四组分区的起始位置和大小分区表项用 32 位逻辑块寻址按每扇区 512 字节计算最大寻址范围是 2TiB 左右折算成常用十进制就是 2.1TB 附近。超过这个容量的空间BIOS 根本看不到。UEFI 改用 GPT 分区表分区表项用 64 位逻辑块寻址扇区按 512 字节算也是 8ZiB 级别这个量级对单块硬盘已经完全够用。文档把这个差异作为 UEFI 的优势之一是准确的同时它是纯硬件寻址层面的问题软件层做任何优化都绕不过去。2.3 启动顺序的实际差异你按开机键之后发生了什么传统 BIOS 的启动顺序上电自检POST、读取 CMOS 里的启动顺序、按顺序到各个设备的前 512 字节找 MBR、把控制权交出去。整个过程是串行的而且引导扇区必须可执行只要破坏就进不了系统。UEFI 的启动顺序则完全不同它直接运行在保护模式下固件先初始化硬件和必要的驱动然后直接读取 FAT 格式的 ESPEFI System Partition分区里的 .efi 启动文件。这意味着 UEFI 不需要经过引导扇区而是直接加载文件也不需要模拟实模式。文档里说的“启动文件与操作系统隔离”就是指 ESP 独立存在这件事系统坏了ESP 还在启动路径就是通的。一个常见做法是把 ESP 分区大小设置在 100MB 到 512MB 之间文件系统用 FAT32里面存放类似 bootx64.efi 这样的文件。如果你的电脑能看到 ESP 分区但不启动先用 diskpart 给它分配盘符看一眼里面有没有文件。3. UEFI 的三大优势拆解隔离、灵活、容量但细节里有坑3.1 安全性Secure Boot 不是万能防火墙文档对安全性的描述主要集中在独立分区和 Windows 8 的 Secure Boot。UEFI 在设计上通过 ESP 分区把启动文件和操作系统隔离这是一层物理隔离而 Secure Boot 则是数字签名层面的校验主板固件里存储着被信任的密钥和证书启动加载程序必须携带有效签名才能被执行。这个设计确实能限制引导型恶意软件比如 rootkit 或者 bootkit 在 UEFI 体系里是没法静默落到启动链上的。但实际维护里有个麻烦Secure Boot 在双系统或者用第三方 PE 维护盘时经常跳出来阻止启动表现为开机直接提示安全策略冲突或者无法验证文件签名。常见解决方案是在 BIOS 设置里临时关闭 Secure Boot 或切换到自定义模式加载自己的密钥但这会降低保护等级属于二选一的取舍。另一个容易忽略的点是 Secure Boot 只保证启动文件未被篡改不保证操作系统本身的安全系统进去之后该中毒还是中毒。3.2 EFI Shell命令行救场的关键工具文档提到 UEFI 启动可以调用 EFI Shell在里面加载驱动、选择启动文件这个能力对做系统维护的人非常实用。EFI Shell 是一个独立于操作系统的命令行环境它的价值在于系统完全进不去时还能操作硬件和启动项。常见场景是默认启动配置坏了系统卡在引导界面进不去此时用 U 盘启动进入 EFI Shell手动执行类似下面的命令直接指定 U 盘上的引导文件fs0: ls \EFI\BOOT\bootx64.efi逻辑说明第一行fs0:切换到第一个可用的文件系统ls列出根目录内容确认设备是否可读第三行手动执行启动文件路径。实际使用中要注意设备盘符未必是fs0在 Shell 里输入map -r能重新扫描并列出所有设备映射再逐个挂载探测。另外 EFI Shell 还可以加载驱动格式是load fs0:\EFI\drivers\某个驱动.efi这条主要用于硬件初始化失败时的应急普通场景用不到。3.3 2.1TB 容量限制的真相MBR 与 GPT 的寻址边界文档里说“支持容量更大”是 UEFI 的第三个优势但更严谨的说法是UEFI 通常搭配 GPT 使用容量上限是 GPT 给的。即便用了 UEFI 固件如果关闭 CSM 的方式不对或分区表还是 MBR大硬盘照样用不满。实操中区别很大的一点是 MBR 硬盘挂到 UEFI 主板上如果系统是 Windows安装程序会拒绝装在 MBR 分区表的磁盘上反过来GPT 硬盘装老系统也需要确认主板能识别 UEFI 启动项。一个典型的翻车场景是买到一块 4TB 硬盘接上旧电脑BIOS 识别只有 2TB。原因是老 BIOS 无法理解 GPT 的后半段空间这属于硬件固件层面的限制刷主板固件也有可能解决但老主板的厂商早就停止维护了。项目BIOS MBRUEFI GPT最大寻址能力2TiB 左右8ZiB 级别引导入口磁盘首扇区ESP 分区内 .efi 文件分区数量4 个主分区128 个分区默认系统引导方式实模式保护模式对第三方引导支持灵活受 Secure Boot 限制这张表来自我整理资料时的对比实际新装机、新硬盘选 GPT 是更合理的方向。4. 三知了文档之外的完整启动流程从开机到桌面的每一步4.1 文档里没写透的 UEFI 启动阶段文档对启动流程的描述比较概括只说初始化硬件、读取配置、加载系统。实际做维护的话值得展开成五个环节固件初始化电源就绪后UEFI 固件先从 SPI Flash 加载自身代码完成基本硬件初始化DXE 阶段加载各类驱动包括磁盘控制器、USB 控制器、显卡等这个阶段直接决定 U 盘能不能在启动菜单里被识别BDS 阶段读取 NVRAM 中的 BootOrder 和 Boot#### 变量确定启动设备优先级加载 .efi 引导文件从 ESP 分区读取启动文件到内存执行移交控制权启动文件加载内核后UEFI Runtime Service 保留但主要流程已经交给操作系统4.2 实际复现用一条命令看你的电脑处于哪种模式判断当前机器是 BIOS 启动还是 UEFI 启动Windows 下用一条命令即可bcdedit /enum {current}逻辑说明这条命令会列出当前启动配置项其中path字段如果是\Windows\system32\winload.efi就是 UEFI 引导如果是\Windows\system32\winload.exe就是传统 BIOS 引导。也可以用msinfo32打开系统信息看 BIOS 模式那一行UEFI 会直接写 UEFI传统模式写传统。Linux 下也有一条等价判断方式ls /sys/firmware/efi逻辑说明如果目录存在且有文件输出说明当前内核是通过 UEFI 引导启动的如果提示目录不存在或者空内容大概率是传统 BIOS 引导。注意某些环境下目录存在但读不到内容可以改用efibootmgr -v辅助确认。4.3 制作 UEFI 启动 U 盘的标准步骤给新电脑装系统或者做维护盘时UEFI 的 U 盘要求和老 BIOS 时代完全不同一个易踩的坑是把 U 盘格式化成 NTFS插到 UEFI 机器上直接不认。UEFI 认可的启动介质分区格式是 FAT32原因是固件内置的文件系统驱动只支持 FAT 家族。我的习惯做法是用命令手工做双引导 U 盘步骤如下diskpart list disk select disk 2 clean convert mbr create partition primary size4096 format quick fsfat32 labelEFI assign letterH active create partition primary format quick fsntfs labelDATA assign letterI逻辑说明先选中目标磁盘清理并转换分区表到 MBR建一个 4GB 的 FAT32 主分区作为 EFI 引导区并激活剩余空间做成 NTFS 存放镜像。实际使用中要注意select disk时认准磁盘序号看错盘号整块盘数据就没了我一般会先用list disk对比容量确认目标盘。这里有个参数点值得重视active命令只对 MBR 分区有效如果选的是 GPT 分区表这个命令会报错UEFI 引导本身不需要激活分区所以做 UEFI 启动盘时不必执行active步骤。4.4 对比一张图BIOS 找不到 U 盘的常见原因有人把 U 盘插上开机按 F12 不出 U 盘启动项大概率是启动模式设成了 UEFI Only而 U 盘分区表是 MBR或者 U 盘是 FAT32 但文件结构不对。UEFI 启动菜单里只显示带 EFI 引导文件的设备没有 .efi 文件的盘会被直接过滤掉。这个现象在制作启动盘时很常见因为部分老 PE 工具只写了 BIOS 引导没有在 U 盘里生成EFI\BOOT\bootx64.efi。我一般会在制作完 U 盘后检查文件结构确认有没有EFI文件夹然后看EFI\BOOT下有没有对应平台的 .efi 文件。缺了就手动补把另一份带 UEFI 引导的 PE 镜像里的EFI文件夹整体复制过来就能解决。5. UEFI 维护与装机的踩坑记录现象、原因与对策5.1 新硬盘装完 Win10 重启报错无法进入系统现象是安装过程一切正常第一次重启就提示找不到操作系统进 BIOS 能看到硬盘但在启动菜单里没有 Windows Boot Manager 项。原因出在安装时磁盘分区表不是 GPT或者安装介质以传统模式引导导致系统装在 MBR 盘中。解决方法是进 PE运行磁盘管理确认分区表类型把盘转换成 GPT重新用 UEFI 模式引导安装程序再装一遍。更稳妥的做法是在安装前就确认启动方式安装界面按 ShiftF10 打开命令行确认diskpart里的convert gpt是否可用。5.2 U 盘在 UEFI 主板启动菜单里消失现象是 U 盘插在主板上开机按 F12 列表里只有硬盘和光驱没有 U 盘。原因多是 U 盘不支持 UEFI 引导或未正确写入 ESP 文件。解决方法是确认 U 盘是 FAT32 且根目录有EFI\BOOT\bootx64.efi缺了就把文件补进去。另一个原因是主板本身的 USB 启动开关没开进 BIOS 找USB Configuration或Legacy USB Support项开启后重启再看。5.3 GPT 硬盘上装了 Linux 后 Windows 引导丢失现象是用 U 盘装完 Linux 之后重启直接进 LinuxWindows 选项从 GRUB 菜单里消失了。原因不是系统掉了而是 GRUB 重写了启动入口没有把 Windows Boot Manager 加进去。解决方法是进 Linux 后运行update-grub让它重新扫描硬盘上的其他系统如果扫描不到就在 UEFI 启动项里手动加很多主板支持在 BIOS 里直接指向\EFI\Microsoft\Boot\bootmgfw.efi。5.4 Secure Boot 导致 PE 进不去现象是开机选择 U 盘启动后直接出现红屏或黑屏提示 Secure Boot Violation。原因是 PE 的引导文件没有微软签名被固件拦截。解决方法是进 BIOS 把 Secure Boot 关闭或改成 Custom 模式再插入自己的平台密钥。如果只是临时维护关掉 Secure Boot 就行。另一个思路是硬件上确认 PE 镜像是否带 UEFI Secure Boot 签名不少新版 PE 已经做了适配。5.5 BIOS 识别不了 3TB 硬盘全容量现象是硬盘容量 3TB系统和磁盘管理只显示 2TB 空间剩余空间不可用。原因是分区表用 MBR3TB 的空间前 2TB 可见后半段丢失。解决方法是把硬盘转换成 GPT 再重新分区注意转换前数据会清空。另外有关键一点部分主板的 SATA 控制器在 IDE 模式下也会出现容量识别异常切换到 AHCI 模式后恢复正常。6. 把 UEFI 能力当维护工具箱以后你会离不开的五个命令和习惯了解完原理和坑真正能让你以后装机维护少熬夜的其实是下面这几个操作习惯每一个都对应一个真实场景。保存 UEFI 启动项的 NVRAM 配置到文件用于备份和还原bcdedit /export 备份路径\bcd_backup逻辑说明这条命令把当前系统的启动配置导出到指定文件还原对应命令是bcdedit /import 备份路径\bcd_backup。Windows 的 UEFI 启动菜单和引导配置都在 BCD 存储里做过备份之后随便改启动项都不怕搞坏。查看当前启动项和设备映射efibootmgr -v逻辑说明这个命令在 Linux 环境下直接列出 UEFI 启动条目、顺序和对应磁盘分区配合 U 盘维护系统排查启动项丢失和乱序问题非常好用。实际使用中-v参数会显示完整的内核参数路径比如\EFI\Microsoft\Boot\bootmgfw.efi一眼能看出引导文件位置对不对。顺手补充一条 UEFI 模式下查看 ESP 分区的命令这个习惯帮我避过多次分区空间不足的坑lsblk -f逻辑说明列出所有块设备的文件系统和分区类型ESP 分区在 TYPE 列显示EFI这样能快速确认哪块盘是 GPT 结构、哪块盘还躺在 MBR 上。装多系统之前先跑一遍这条命令能避免把系统装错分区表。实际操作中还有一个小技巧UEFI 的 BootOrder 里经常混入无效启动项清理方法是在 Linux 下用efibootmgr -b 编号 -B删除指定条目Windows 下没有等价命令但可以用msconfig临时禁用来降低误选概率。每次翻车后我都会强制自己走一遍先判断启动模式是 UEFI 还是 BIOS、再查分区表和引导文件完整性、最后看固件设置里有没有被 Secure Boot 或 CSM 干扰这套流程走顺之后基本上半小时内能定位九成以上的启动问题希望帮到你。本文还有配套的精品资源点击获取

相关新闻

多线路自动化测试:自动解析驱动框架的实践与落地

多线路自动化测试:自动解析驱动框架的实践与落地

1. 多线路自动化测试,痛点比你想的更具体先说结论:绝大多数开发团队不是不想做自动化测试,而是被"多线路"这三个字卡死了。我们团队维护的业务系统,同时对接了多条上游线路——内容源、支付通道、消息推送渠道&#xff…

2026/10/10 11:26:35 阅读更多 →
CleanCode AI编程标准代码生成器:从源头治理技术债的工程实践

CleanCode AI编程标准代码生成器:从源头治理技术债的工程实践

1. 为什么“生成即规范”是个值得死磕的方向写代码这件事,很多人有个误区:觉得功能跑通了就万事大吉。但真正在项目里摸爬滚打过几年的人都知道,代码写出来只是开始,后面还有无数次的修改、调试、交接、扩展。一个功能今天能跑&am…

2026/10/10 11:25:34 阅读更多 →
用cmux重构AI编码工作流:终端、Agent与浏览器统一管理

用cmux重构AI编码工作流:终端、Agent与浏览器统一管理

1. AI 编码先栽在窗口管理上,我是怎么被逼疯的1.1 桌面真实状态:十几个终端互相淹没AI 编码工具越用越顺手,我的桌面却越来越像一个灾难现场。跑一个功能需求,光终端就要开七八个:左边的 Agent 在改代码,中…

2026/10/10 11:25:33 阅读更多 →

最新新闻

博客系统测试实战:从功能到安全的完整复盘

博客系统测试实战:从功能到安全的完整复盘

如果你接到一个博客系统的测试任务,最怕的不是用例写不完整,而是测了半天没抓到重点,最后报告写得像流水账。最近我完整测了一套从零搭建的博客系统,从用户登录、文章发布、评论互动,到并发压测、浏览器兼容和基础安全…

2026/10/10 12:07:43 阅读更多 →
商城接口安全设计:签名验签、防重放与越权校验怎么落地

商城接口安全设计:签名验签、防重放与越权校验怎么落地

商城接口被改价,是上线后最容易出、也最难查的一类安全问题。客户端提交订单时把 price 从 199 改成 0.01,服务端直接信任这个值入库;或者抓一次下单请求原样重发几百次,把优惠券、积分、库存刷穿。很多团队的第一反应是"我们…

2026/10/10 12:07:43 阅读更多 →
高效测试用例设计指南:从等价类到场景法的完整实践

高效测试用例设计指南:从等价类到场景法的完整实践

写了这么多年测试用例,我最深的感受是:大多数人不是不会写用例,而是把“写用例”当成了“填空题”——按照模板把字段填满,评审一过,就扔进用例库吃灰。等版本上线出了线上故障,回来看用例库,发…

2026/10/10 12:07:43 阅读更多 →
2026跨境卖家生死局:平台新政下,这类店铺正在被批量清退

2026跨境卖家生死局:平台新政下,这类店铺正在被批量清退

2026年下半年,跨境电商行业迎来新一轮平台规则密集调整。与以往小范围灰度测试不同,本轮新政直接指向店铺的底层经营资质与履约能力,多个主流平台同步升级了审核模型,清退动作从“个别警告”转向“批量执行”。 清退重点&#xff…

2026/10/10 12:07:43 阅读更多 →
BEM模型实战:从战略解码到人才需求推导的完整操作流程

BEM模型实战:从战略解码到人才需求推导的完整操作流程

简介:这份PPT资料聚焦华为BEM业务战略执行力模型,面向企业管理者、战略规划与运营岗位人员,以及希望系统理解战略解码方法的学习者,帮助解决战略目标难以分解落地、组织KPI与重点工作脱节等实际问题。压缩包内共1个pptx文件&#…

2026/10/10 12:07:43 阅读更多 →
小模型干大事路线图:从 GLiNER v2 60M 到 340M Decide,轻量 NER 路线的三招可复制打法

小模型干大事路线图:从 GLiNER v2 60M 到 340M Decide,轻量 NER 路线的三招可复制打法

小模型干大事路线图:从 GLiNER v2 60M 到 340M Decide,轻量 NER 路线的三招可复制打法 【免费下载链接】GLiNER2.5-Decide 项目地址: https://ai.gitcode.com/hf_mirrors/fastino/GLiNER2.5-Decide 过去两年,中文技术社区讨论"小…

2026/10/10 12:06:42 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/10 5:23:50 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →