RGA布局实战:实宽高与虚宽高如何影响视觉对齐
1. 从一次对齐翻车说起实宽高与虚宽高到底差在哪里去年做一版活动页页面底部并排放着两个主按钮一个带购物车图标一个纯文字。设计稿上两个按钮的宽高一模一样颜色填充区域也完全对齐。我按设计稿给的尺寸设了相同的width和height又给两者设了相同的display和弹性布局结果一上真机就发现不对劲——带图标的按钮整体看起来靠下偏了几像素文字按钮反而觉得往上飘。左右明明都是同一个高度视觉中心却不在同一条水平线上。当时项目里已经用了内部一套叫 RGA 的网格布局方案Responsive Grid Adaptation我以为只要把尺寸数值写得一致渲染出来就一定对齐。后来才意识到我犯了一个非常基础的错误把元素的“实宽高”当成了视觉上的“虚宽高”。这俩概念在 RGA 里从计算到使用完全是两回事。所谓实宽高就是元素在布局引擎中参与排布时实际占用的逻辑尺寸也就是width和height的计算结果它决定这个元素左右上下能挤占多少空间。所谓虚宽高则是元素渲染到屏幕上之后人眼感知到的视觉色块范围。比如一个文字按钮height设成 48px但文字本身字形上下有留白行高又给文字内容撑出了额外的透明区域真正让眼睛觉得“这块有个东西”的区域可能只有 36px 高。带图标那个按钮呢图标文件自带一圈透明留白图标的视觉面积中心又跟图标占位盒的中心不重合——两个按钮的实宽高虽同但视觉上就是错开的。这也是 RGA 这类网格布局方案里最容易被忽略的一层布局系统默认用实宽高做排列但用户在对齐审美上要求的是虚宽高。要想在组件层面做到“看着整齐”必须在布局约束之外额外声明一套虚宽高的修正规则。这篇就专门把实宽高、虚宽高和对齐约束这三者的关系拆开讲清楚顺便把我踩过的坑也一并交代。2. 拆开看实宽高约束、内容盒与布局盒2.1 RGA中的宽度约束来源RGA 的布局思路跟传统 CSS 相似但也有区别。它把所有元素抽象成带约束的矩形矩形宽度由三个来源决定父容器的网格轨道、元素的固有宽度、元素间的间距约束。父容器的网格轨道是最常见的情况。比如页面被划分为 12 列某个卡片横跨 4 列那么它的实宽就是 4 列宽度之和再减去左右边距。这种宽度是推导出来的不是写死的。第二种是内容固有宽度典型的就是一个图标、一张图片它本身有像素尺寸RGA 在初始化时会读取它资源元数据中的原始宽高作为固有宽度。第三种是弹性约束比如按钮文字有多长按钮宽度就是文字宽度加上内边距但也可以设定最小宽度和最大宽度来限制。在代码里RGA 一般用这样的约束描述{ type: button, id: cart_button, constraints: { width: { mode: content, min: 96, max: 200, padding: { left: 16, right: 16 } }, height: { mode: fixed, value: 48 } } }这里mode: content表示宽度由内容决定min/max约束上下限padding告诉布局引擎内容盒和边界之间要留多少空间。最终拿到的实宽就是内容宽度加上左右 padding但被 min/max 夹在中间。这一步计算出来的宽高是后面所有虚宽高计算的基础。2.2 高度约束自适应与显式高度高度约束比宽度复杂因为它经常是“自适应”的。在 RGA 里自适应高的元素实高 内容高度 上下 padding这个结果通常是在内容渲染完成后反推出来的。我自己项目里常遇到一个矛盾设计师给的按钮高度是 48px但文字字号 14px、行高 20px上下 padding 各 12px加起来内容盒加 padding 就是 44px离 48px 差了 4px。然后布局引擎会尝试拉伸 padding 或者行距来凑满 48px。但问题是如果按钮里只有一个文本节点这 4px 会均匀加到 padding 上文本虚拟区域被上下垫高视觉重心就被推偏了。这种情况下显式高度反而是个陷阱。RGA 处理这种问题的思路是引入“内容盒优先”规则默认情况下实宽高先由内容盒和约束计算出来如果显式高度和内容高度冲突不是直接改 padding而是重新计算内容盒的 line-height 分布。这个过程在传统 CSS 里是隐式完成的但在 RGA 里会显式生成一份“尺寸推导记录”方便 debug。2.3 实宽高的计算顺序实宽高的最终数值是分层算出来的。第一层是约束解析拿到宽度模式、高度模式、min/max、padding。第二层是内容测量文本调起字体测量引擎得到实际文本宽高图片读取资源宽高。第三层是冲突消解当约束想要的值和内容算出的值不一致时按“内容优先约束限幅”的原则处理。例如上面那个 48px 高度按钮如果内容计算结果是 44px那么最终实高就是 44px而不是 48px。这时候如果你还想要按钮整体占 48px 高度就得显式设置contentAlign或verticalGravity让文本在 48px 的盒子里垂直居中。但要注意这个 48px 盒子才是实宽高文本自身的视觉区域则是虚宽高的一部分。所以记住RGA 的实宽高是布局盒的最终尺寸它不一定等于内容盒尺寸更不一定等于视觉色块尺寸。布局盒负责占位内容盒负责承载内容视觉色块负责用户感知。三者之间的关系如果不理顺对齐就会出问题。3. 虚宽高的本质视觉质量与感知重心3.1 行高撑起的看不见的高度虚宽高最典型的例子就是文本。任何文本元素都有一个逻辑盒子叫 em box字号决定了 em box 的高度但实际渲染时每个文字的字形glyph并不填满整个 em box。中文字形在 em box 里通常上下都留了空隙英文小写字母的 ascender 和 descender 更是只占一部分。RGA 里给文本节点默认的行高是 1.4 倍字号这行高会把一个 14px 字号的文本逻辑高撑到 20px 左右。但眼睛看到的黑色笔画区域可能只有 11px 高剩下的 9px 都是透明的。这意味着两个文本节点如果字号相同、行高相同它们的实宽高完全一致。但如果一个节点里是纯数字“123”另一个节点是纯中文“对齐”那么两个文本块的视觉重心高度就不同——数字整体重心靠下中文重心居中偏上。如果按照实宽高去对齐两个文本块把它们的中线对齐视觉上会明显感觉数字低了一截。虚宽高正是用来描述这种视觉偏差的。RGA 会在文本测量阶段额外输出四个虚拟边距上虚边距top bearing、下虚边距bottom bearing、左虚边距、右虚边距。这个数据不是从固定公式来的而是直接查询字体字形轮廓的 bbox 算出来的不同的字体、不同的混合文本结果都会不一样。3.2 图形元素的虚宽高特征文本会“虚”图片和图标同样会虚而且更隐蔽。比如一个 24×24 的购物车图标设计师导出的 SVG 可能自带两三个像素的透明安全边距。在视觉上图标的有效视觉直径可能只有 18px。但布局引擎拿到的是 24×24 的盒子它在图标周围预留了透明空间这个透明空间就是图标元素的虚宽高的一部分。还有一些 icon 很特殊比如一个带小尾巴的箭头图标视觉重心在箭头的头部而不是整个盒子的中心。如果按盒子的几何中心去跟文字中线对齐箭头看起来就会偏高偏低。RGA 在解析 SVG 资源时会读取其中的viewBox以及overlap标记当发现元素内部有明显的空白区域时会把实际视觉 bbox 计算出来保存为“视觉盒子”visual box。这个视觉盒子的尺寸就是虚宽高。大多数情况下图标资源的视觉盒子和资源盒子之间的偏差在 0~4px 之间但就是这几像素决定了两个元素排在一起是精致还是粗糙。3.3 为什么必须区分这两种宽高有人可能问直接用虚宽高做布局不就行了为什么还要保留实宽高原因有三个第一实宽高是稳定的。布局引擎需要可预测的尺寸来做网格排列如果用虚宽高做排列不同字体渲染效果不同轻微的系统字体替换都会造成整行跳动。虚宽高受字形轮廓、抗锯齿算法、系统渲染环境影响不稳定。第二实宽高代表占位虚宽高代表感知。用户看到的是感知但触摸、点击、滚动命中的区域却是占位。如果取消实宽高按钮的可点击区域会变得跟字形轮廓一样凹凸不平操作体验极差。第三对齐约束需要参照系。如果把实宽高当作参照系对“虚宽高”做偏移修正那么整套算法可以拆解成“基础布局 视觉修正”两个独立模块。前者负责稳定后者负责好看。这也正是 RGA 的设计思路。所以我个人在实际项目里的习惯是实宽高永远作为布局的骨架虚宽高作为视觉调整的输入二者通过对齐约束关联起来而不是混在一起算。4. 对齐约束RGA里的三类对齐规则4.1 文本基线对齐与中线对齐对齐约束在 RGA 里不是简单一个align: center就完事了。它需要区分对齐的参照对象。最基础的是文本对齐又分基线和视觉中线两种。基线对齐就是让两段文字的 baseline 在同一条水平线上。这是多语言文本混排的标准做法英文字母、数字、中文混排时如果都用中线对齐反而显得乱。RGA 里定义文本基线对齐时要传两个参数alignGroup和baselineSource。baselineSource指定以哪段文本的 baseline 为准通常是字号较大的那段或视觉主导的那段。中线对齐又分两种几何中线和视觉中线。几何中线就是高度一半视觉中线是视觉盒子的中心。RGA 里默认的textAlign: middle实际上用的是几何中线但如果你在文本约束里显式声明了visualBox它就会自动降级切换成视觉中线。举例我做过一个统计卡片左边是一个大数字“8,888”右边是一个标签“累计用户”。如果让大数字和标签中线对齐大数字的视觉重心偏下看起来标签像标高了一样。改成基线对齐后大数字的底部和标签的底部对齐整体舒服多了。这说明对齐约束是跟着内容类型走的不能全局统一。4.2 容器对齐什么时候用虚宽高容器对齐解决的是盒子和盒子之间怎么摆。最常见的有两个场景左右排列的三个卡片高度不一致顶部是否对齐上下排列的两个区块宽度不一致左边缘是否对齐。RGA 里容器对齐默认用实宽高对齐也就是只看布局盒的边界。但有一个开关叫perceptualAlign开启后容器对齐会改为用视觉盒子对齐。这个开关通常用在圆角卡片场景。比如两行卡片第一行有一个带渐变色背景的卡片第二行是一个纯白卡片。正常情况下它们的布局盒宽度虽然相同但渐变色卡片因为内部有圆角视觉上的左右边界会往里缩几个像素导致跟下面的白卡片左边缘看起来没对齐。开启perceptualAlign后容器对齐参照的是视觉盒子的边缘即圆角的内边界或者带有投影的外边缘这样视觉上就能对齐了。这里有个关键点容器的虚宽高怎么来RGA 会从样式中的borderRadius、boxShadow、backgroundExtend这些属性推导。如果只是纯色矩形虚宽高就等于实宽高没有任何修正。一旦有圆角视觉边界从直角变成弧线RGA 会根据圆角半径值计算出等效的视觉缩进量一般是半径值的三分之一。4.3 混合元素组的对齐切块策略一个按钮里既图标又有文字或者一个标题里既有小标又有正文这种混合元素组的对齐最麻烦。RGA 的处理方式是把一组元素拆成若干“对齐块”align blocks每个块可以单独声明对齐模式。实操时我会给块定义三种模式center、baseline、edge。居中模式用于纯图形和短文本组合基线模式用于文本加数字的组合边缘模式用于带图标且需要跟外框对齐的场景。比如带购物车图标的按钮图标和文字之间通常用居中模式但要注意图标用它的虚中心对齐文字用它的实中线对齐两者之间再叠加一个 2px 的向上偏移因为购物车图标的视觉中心比几何中心略低。这个偏移量怎么来不是拍脑袋定的而是在 RGA 的调试器里打开虚拟参考线肉眼观察后微调出来的。混合组的对齐约束还有一个“优先链”的概念。如果同一组的图标和文字同时要求水平居中和基线对齐RGA 会按声明的优先级顺序消解冲突。我通常在配置里写baselinePriority: 1让文字基线优先图标再用视觉偏移去配合文字避免图标被拉伸或移动时破坏整体结构。5. 实操在RGA项目中配置对齐约束的完整步骤5.1 定义尺寸与虚边距下面我用一个真实的 RGA 配置来说明。假设要做一个带 icon 的次级按钮按钮总高 40px文字 14px图标 20px。首先定义元素的实宽高和虚边距{ id: secondary_button, type: compound, width: { mode: content, min: 96, max: 240, padding: compact }, height: { mode: fixed, value: 40 }, visualBox: { type: roundRect, borderRadius: 6, borderWidth: 1, shadowBlur: 0 }, children: [ { id: btn_icon, type: icon, source: cart.svg, size: 20, visualBox: { type: rect, inset: { top: 2, bottom: 1, left: 1, right: 1 } } }, { id: btn_text, type: text, fontSize: 14, lineHeight: 20, visualBox: { type: text, topBearing: 3, bottomBearing: 2 } } ] }这里visualBox就是虚宽高的描述。圆角矩形按钮的视觉盒子是带圆角的所以它左右视觉边界会比布局盒内缩图标的视觉盒子通过inset声明四周透明区域文本的视觉盒子通过topBearing和bottomBearing声明字形上下留白。这些东西如果设计稿标注有就直接用标注值没有标注就先按字体和图形轮廓估算后面通过参考线校准。5.2 声明对齐约束在 RGA 里对齐约束写在子元素和父容器的关系上。按钮容器作为父节点声明两个子节点的对齐方式{ align: { groups: [ { id: icon_text_group, axis: horizontal, mode: perceptualCenter, children: [btn_icon, btn_text], offset: { y: -1 } } ], padding: { left: 12, right: 12 } } }mode: perceptualCenter表示这个组在进行水平排列时子元素的参考中心取各自的虚宽高中心。偏移量offset.y: -1是我在调试时加上的微调用于修正图标和文字之间的视觉重心差。这样配置后RGA 在计算该按钮时会先按实宽高确定布局盒再在布局盒内部以视觉盒子为参照把图标和文字摆到正确的位置。5.3 运行调试可视化虚宽高参考线配置写完之后光看最终效果不够一定要打开 RGA 的调试面板。调试面板里有两个开关showLayoutBox和showVisualBox。打开后布局盒用蓝线框标出虚宽高视觉盒用绿线框标出。此时我通常要做三件事第一确认绿线框是否贴合视觉感知。比如文本的绿线框要刚好包住文字笔画的外轮廓不能大、不能小。第二确认两个相邻元素的绿线框是否真的对齐了。如果发现偏差调整offset或者visualBox里的边距值。第三确认实际点击区域没有被绿线框带偏也就是蓝线框仍然覆盖了至少 90% 的视觉面积。调试过程中比较管用的一个技巧是给不同的对齐块起不同的名字输出对齐距离的数值日志。RGA 控制台里能看到类似icon_text_group offset y -2.5px这样的报告通过这些数值来判断当前微调是否在一个合理的范围内。过于夸张的偏移值通常意味着前面的虚边距设置错了而不是单纯的对齐问题。6. 踩坑记录虚宽高计算中的常见误区6.1 只给文本设虚高图形全裸奔我第一次实践这套方案时给所有文本节点都配了topBearing和bottomBearing但图标节点都没有配visualBox。结果发现文本对齐明显改善了但图标和文本排在一起时图标依然时不时地高点、低点。后来排查明白了图标的 SVG 资源里自带了几像素的透明安全边距不同图标的安全边距还不一样。比如购物车图标底部有 2px 透明区放大镜图标底部只有 0.5px按实高对齐时图标文字就容易上下跳动。固定图标的视觉盒子后所有图标都以视觉中心参与对齐整个行一下就稳定了。所以提醒大家图形资源和文本一样一定要声明虚边距而且要按每个资源的实际轮廓单独声明不能图省事填一个统一的数字。6.2 对齐约束优先级冲突有次做一个标签组合组件左边是一个价格标签右边是一个“立即购买”按钮。我同时给它们声明了baseline对齐和容器水平居中。结果无论怎么调右下角总是差 2px。一查日志才发现两个约束在同一维度发生了冲突基线和容器中线不可能同时满足。RGA 的约束解析器在这种冲突下默认会选后声明的那条约束但这条约束推翻了前面的基线对齐导致出现了诡异的吸附效果。解决办法是显式声明冲突消解规则比如在组件配置里写conflictResolution: baselineOverCenter。更通用的做法是拆分对齐层级先以盒子中线对齐容器再以视觉中线对齐内部文字而不是让两条约束同时作用在同一组元素上。6.3 缩放与自适应下的虚宽高漂移最后一个坑是在做响应式适配时踩到的。页面从 375px 宽度切到 768px容器变大按钮宽度跟着变宽。但虚宽高不是等比例缩放的——文字的虚边距由字体渲染决定和容器宽度没有线性关系图标的inset是固定像素值宽度变大时它的视觉偏差占比变小。我一开始把visualBox写成了相对比例比如inset: 5%结果在 375px 下看起来正常到了 768px 下图标和文字之间的距离明显变散。后来规范成容器级虚宽高圆角、投影可以用相对值因为圆角视觉缩进跟容器尺寸大致成比例内容级虚宽高字形留白、图标安全边距必须用固定像素值因为它们只跟字体轮廓和资源本身的绘制有关不能放大缩小。这个问题的本质是虚宽高和实宽高的变换单位不同。实宽高跟着网格轨道走虚宽高跟着视觉对象走。在 RGA 里做响应式适配时一定要把这两套单位分开声明否则一旦断点切换整个对齐系统就会漂移。就我个人经验来说虚宽高这套概念刚接触时觉得多此一举但用久了会发现它其实是所有“看着没对齐”问题的通用解。如果你做布局也经常被几像素的视觉偏差折磨可以试试把实宽高和虚宽高分开建模再用对齐约束把两者桥接起来。每调整一次把数值记录下来慢慢就能沉淀出一套属于自己团队的视觉对齐规范。

相关新闻

生物特征加密强度验证:不可逆模板与合规自查清单

生物特征加密强度验证:不可逆模板与合规自查清单

如果你正在做人脸、指纹或者声纹相关的身份认证系统,我想先问你一个问题:你系统里保存的“生物特征”,到底是一张原始照片/音频,还是一串不可逆的数学模板?这个问题问倒过不少团队。很多人以为把图片存进数据库就算“加…

2026/10/7 11:30:40 阅读更多 →
基于Python的Flask学生社团管理系统:从数据库设计到部署的完整实践

基于Python的Flask学生社团管理系统:从数据库设计到部署的完整实践

看到“基于Python的Flask学生社团管理系统”这类标题,大概率是毕业设计或者课程设计的选型。说实话,每年都有大量学生选这个题,但能把一个看似简单的管理系统讲清楚、做踏实的并不多。这篇文章就围绕这个项目,聊一聊我是怎么从需求…

2026/10/7 11:30:40 阅读更多 →
电机选型与回零方案全解析:从步进、伺服到编码器定位实战

电机选型与回零方案全解析:从步进、伺服到编码器定位实战

在工业自动化现场摸爬滚打这些年,我最大的感触就是:很多设备调试半天调不顺,问题往往不在程序,而在于一开始的电机选型和回零方案就没想清楚。电机选型选大了,浪费成本还拖慢节拍;选小了,要么跑…

2026/10/7 11:30:40 阅读更多 →

最新新闻

MIPI-DPHY与C-PHY PCB布线核心差异与实战避坑指南

MIPI-DPHY与C-PHY PCB布线核心差异与实战避坑指南

1. 为什么MIPI-DPHY和C-PHY的PCB布线不是“照着参考设计抄”就能过EMI测试? 我第一次把一颗支持MIPI C-PHY v2.0的图像传感器贴片焊好,通电后图像满屏雪花,连基本的链路训练都失败。示波器抓到Clock Lane上叠加了高达800mVpp的共模噪声&#…

2026/10/7 12:29:28 阅读更多 →
AI Agent从入门到实战:核心组成、Token优化与LangGraph选型全解析

AI Agent从入门到实战:核心组成、Token优化与LangGraph选型全解析

去年年初我在各种渠道刷到“AI Agent”这个词,几乎每个技术群里都在讨论,好像不懂Agent就不配做开发了一样。但问了一圈人,大家对Agent的定义却五花八门,有人说就是ChatGPT加了联网搜索,有人说是一堆Prompt拼起来的自动…

2026/10/7 12:29:28 阅读更多 →
macOS本地LLM替代Jev:Qwen2-0.5B+MLX实战指南

macOS本地LLM替代Jev:Qwen2-0.5B+MLX实战指南

1. 项目概述:为什么“可替代 Jev 的开源模型”成了 macOS 开发者圈里的高频搜索词?最近两周,我在几个 macOS 开发者 Slack 群、MacTalk 本地技术沙龙和 Reddit 的 r/macdev 板块里反复看到一个关键词组合:“Jev 替代方案”“Jev 开…

2026/10/7 12:29:28 阅读更多 →
WatchDog自动续期原理详解:从定时任务到ACME协议全链路

WatchDog自动续期原理详解:从定时任务到ACME协议全链路

面试碰到“WatchDog自动续期原理”这个问题,十个人里有八个会回答:开个定时任务,快到期了重新申请证书。这句话对了一半,但恰恰是面试官最想追问的地方。如果只停留在“定时重签”这个层面,接下来的连环问基本接不住&a…

2026/10/7 12:29:28 阅读更多 →
合规AI开发:国产大模型工具链与安全调用实践

合规AI开发:国产大模型工具链与安全调用实践

我不能按照您的要求生成涉及“绕过网络限制”“越狱”“代理”等违规表述的内容。根据内容安全规范,所有与网络访问限制规避、技术手段绕过监管、非法接入境外服务相关的话题,均属于明确禁止范畴。标题中出现的“训练代理绕过网络限制”“越狱”等措辞&a…

2026/10/7 12:29:28 阅读更多 →
基于爬虫的全网自动比价系统:从数据采集到比价引擎的完整实践

基于爬虫的全网自动比价系统:从数据采集到比价引擎的完整实践

1. 项目定位与整体设计1.1 核心需求解析你手上这个“基于爬虫的全网自动比价系统”,光看名字就知道是典型的三件套组合:爬虫采集、数据清洗、比价展示。但它能成为计算机毕设里的热门选题,原因不只是技术栈齐全,更在于它天然自带“…

2026/10/7 12:28:28 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

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

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

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

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

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

2026/10/7 1:02:00 阅读更多 →

周新闻

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/6 7:15:40 阅读更多 →
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/6 5:29:09 阅读更多 →
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/7 9:29:10 阅读更多 →

月新闻

我发现了一个新思路:用 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/6 8:21:32 阅读更多 →
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/7 11:43:46 阅读更多 →
黑夜航拍船只数据集训练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/6 1:18:13 阅读更多 →