React Native鸿蒙跨平台通过ScrollView的contentContainerStyle结合Flex布局,实现了空态内容在页面的垂直与水平居中
这个待办事项空状态页面采用了简洁明了的组件化架构通过单一组件TodoListEmpty实现了完整的空状态展示功能。组件结构清晰包含头部区域和内容区域其中内容区域展示了空状态的视觉元素和操作按钮。这种设计不仅满足了功能需求也为后续的功能扩展和跨端适配奠定了基础。图标库constICONS{add:➕,check:✅,delete:️,edit:✏️,todo:,completed:✔️,pending:⏳,empty:,task:,done:,list:✅,};使用 Emoji 作为图标库是一个巧妙的设计选择既减少了对图片资源的依赖又能在不同平台上保持一致的视觉效果。这种方式在跨端开发中尤为重要因为它避免了不同平台对图片资源处理的差异同时也降低了应用的包体积。空状态View style{styles.emptyState}Text style{styles.emptyIcon}{ICONS.empty}/TextText style{styles.emptyTitle}暂无待办事项/TextText style{styles.emptySubtitle}添加您的第一个任务开始高效管理时间/TextTouchableOpacity style{styles.addButton}Text style{styles.addButtonText}{ICONS.add}添加任务/Text/TouchableOpacity/View空状态设计注重用户体验通过多层次的视觉元素引导用户操作大尺寸图标直观传达空状态的含义标题文本清晰告知当前状态副标题文本提供操作指引突出的添加按钮引导用户执行下一步操作这种渐进式的信息传达方式符合用户认知习惯减少了用户的认知负担。布局content:{padding:16,flexGrow:1,justifyContent:center,},emptyState:{alignItems:center,justifyContent:center,paddingVertical:60,backgroundColor:#ffffff,borderRadius:12,elevation:3,shadowColor:#000,shadowOffset:{width:0,height:2},shadowOpacity:0.1,shadowRadius:4,},通过flexGrow: 1和justifyContent: center实现了空状态内容在垂直方向上的居中对齐确保了在不同尺寸的屏幕上都能保持良好的视觉效果。同时通过paddingVertical: 60提供了足够的垂直空间避免了内容过于紧凑的视觉感受。StyleSheetconststylesStyleSheet.create({container:{flex:1,backgroundColor:#f8f9fa,},// 更多样式...});使用StyleSheet.create创建样式对象这是 React Native 推荐的样式定义方式。相比内联样式StyleSheet可以提供更好的性能因为它会在应用启动时进行优化并且在鸿蒙系统中也能更好地映射到原生样式系统。组件映射SafeAreaView→SafeArea或Flex容器ScrollView→Scroll组件TouchableOpacity→Button或Text 手势事件View→Flex容器Text→Text组件样式适配鸿蒙系统的样式定义方式与 React Native 类似但属性名称可能略有不同例如shadow相关属性在鸿蒙中需要使用elevation或其他等效属性尺寸单位在鸿蒙中默认使用vp与 React Native 的密度无关像素概念类似这个待办事项空状态页面展示了 React Native 跨端开发的核心技术要点通过简洁的组件设计、精心的空状态布局和细致的样式管理实现了一个美观、用户友好的空状态页面。在鸿蒙系统适配方面通过组件映射、样式适配和布局调整可以快速实现跨端迁移保持功能和视觉效果的一致性。在React Native跨端开发体系中空状态页面是产品体验的重要组成部分也是前端工程化中场景化组件设计的典型体现其设计质量直接影响多端用户的操作引导与视觉体验。本次解析的待办事项空状态页代码是一套基于React Native函数式组件构建的标准化空态页面实现聚焦于空状态的视觉布局、操作引导、原生交互等核心场景所有技术实现均基于React Native通用API与标准开发模式可无缝适配React Native for HarmonyOS鸿蒙桥接方案实现一套代码在Android、iOS、鸿蒙多端的原生渲染与交互一致性。本文将从技术选型、空态布局设计、原生交互实现、样式系统优化、鸿蒙跨端适配等维度深度解读该页面的技术实现思路与跨端落地的核心要点同时剖析其在待办类应用中的工程化设计价值。一、技术栈本页面延续React Native TypeScript的核心技术栈以函数式组件为基础架构未引入复杂的第三方依赖所有核心能力均基于React Native原生封装的组件与API实现选型过程始终围绕鸿蒙跨端兼容、原生渲染性能、开发效率三大核心原则确保代码的轻量性与多端适配性核心选型与技术特性如下基础UI与布局组件SafeAreaView、View、Text、TouchableOpacity作为页面核心载体均为React Native for HarmonyOS已完成深度桥接的基础组件底层会被分别编译为Android的原生View/TextView、iOS的UIView/UILabel、鸿蒙的Component/Text组件完全基于各平台的原生渲染引擎执行规避了WebView渲染带来的性能损耗与样式兼容问题保证多端的原生视觉与交互体验滚动与媒体适配组件ScrollView承担页面滚动容器职责桥接各平台原生滚动控件保证鸿蒙等设备上的滚动流畅性DimensionsAPI用于获取设备窗口宽度为后续的动态布局拓展提供基础二者均为跨端屏幕适配的标准能力无平台专属特性样式与性能优化APIStyleSheet采用类CSS语法结合JS对象的形式定义样式由React Native框架做预编译、缓存与优化减少多端渲染时的样式计算开销其样式对象与鸿蒙ArkUI的样式定义语法高度契合为跨端样式迁移提供了天然的兼容性React核心能力函数式组件架构结合useState状态钩子的预留设计遵循React声明式编程与组件化核心思想该思想与鸿蒙ArkUI的组件化、状态驱动渲染理念高度统一为后续功能拓展如添加待办、列表渲染提供了逻辑层面的跨端一致性轻量资源管理通过键值对形式封装ICONS图标库选用通用Emoji作为视觉元素避免了第三方图标库如react-native-vector-icons在鸿蒙平台的桥接兼容问题减少了项目依赖体积提升了多端编译与启动效率是跨端开发中轻量性原则的典型实践。本页面虽为纯展示型空状态页未实际使用useState做状态管理但预留了状态钩子的引入入口为后续拓展待办事项的增删改查功能做好了技术铺垫保证了代码的可扩展性与跨端迭代的平滑性。二、空状态页面空状态页面的核心价值在于无数据时的用户引导与视觉体验兜底本页面的布局设计遵循移动端空态设计的通用规范同时兼顾鸿蒙等多端设备的屏幕特性通过图标标题说明操作按钮的标准化结构实现了引导性与美观性的统一其布局设计的技术实现充分体现了React Native跨端开发的场景化适配思路核心要点如下1. 根容器页面以SafeAreaView作为根容器替代普通View组件这是解决跨端异形屏适配的关键技术选型。在鸿蒙、Android、iOS等设备中异形屏挖孔屏、刘海屏、折叠屏的安全区域参数存在显著差异例如鸿蒙折叠屏的安全区域随屏幕形态变化iOS灵动岛的顶部安全区域高度与Android刘海屏不同SafeAreaView作为React Native封装的跨平台原生组件能自动识别各设备的系统安全区域参数自动为布局添加适配性的内边距避免页面内容被状态栏、刘海、底部导航栏等系统元素遮挡。在鸿蒙跨端开发中React Native for HarmonyOS已完成SafeAreaView的深度桥接能精准识别鸿蒙设备的安全区域配置无需开发者手动计算与设置内边距大幅降低了跨端异形屏适配的开发成本保证了多端布局的基础一致性。2. 页面头部页面头部通过View组件封装标题与副标题形成独立的布局模块通过Text组件实现文本展示并通过样式设置了居中对齐、上下内边距、字体大小与颜色的差异化设计。这一标准化头部布局是跨端开发中组件复用的典型载体后续可将其抽离为全局通用的PageHeader组件在Android、iOS、鸿蒙多端的所有页面中复用仅需通过Props传递标题、副标题等参数即可实现头部布局的统一与内容的个性化。在鸿蒙平台的定制化开发中可通过React Native的PlatformAPI为头部添加鸿蒙专属的样式特性例如选用鸿蒙原生的思源黑体作为标题字体、调整鸿蒙设备的头部内边距以适配折叠屏仅需在StyleSheet中做条件判断无需修改头部的布局结构保证了多端布局结构的一致性与样式的个性化。3. 空态核心区域空态核心区域是页面的视觉焦点通过ScrollView的contentContainerStyle结合Flex布局实现了空态内容在页面的垂直与水平居中这是跨端布局的核心技术点。普通View的居中布局仅能在固定高度容器中生效而ScrollView通过设置flexGrow: 1与justifyContent: center让内容容器自适应页面剩余高度即使在鸿蒙大屏设备如智慧屏、平板中也能保证空态内容在屏幕可视区域的垂直居中避免了因设备屏幕尺寸差异导致的布局偏移。同时ScrollView的使用为后续功能拓展提供了兼容性当添加待办事项后页面从空状态切换为列表状态ScrollView可直接作为列表的滚动容器无需修改页面的核心布局结构实现了空状态与列表状态的跨端布局统一。4. 空态内容空态核心区域内部遵循图标-标题-说明-按钮的视觉层级依次排列Emoji图标、空态标题、引导说明、添加按钮形成了清晰的视觉流与操作引导逻辑。其中Emoji图标作为视觉核心通过超大号字体实现强视觉冲击快速传递“无数据”的状态空态标题采用粗体、中等字号明确告知用户当前状态引导说明采用常规字号、浅色系文字详细说明操作价值添加按钮作为核心操作入口采用高饱和度主色调形成视觉焦点引导用户执行添加待办的操作。这一层级设计完全基于移动端通用的视觉设计规范在鸿蒙等多端设备的渲染中无视觉偏差且各元素的间距、内边距均通过固定值结合比例化设计实现兼顾了小屏手机与鸿蒙大屏设备的视觉协调性是跨端场景化布局设计的典型实践。本页面的核心交互入口是“添加任务”按钮选用TouchableOpacity作为按钮实现组件而非React Native的Button组件这一选型是跨端开发中交互一致性与样式定制性的双重考量也是适配鸿蒙平台的最优选择其核心技术优势如下1. 跨端样式Button组件虽为React Native的原生按钮组件但样式定制性极差其默认样式在Android、iOS、鸿蒙平台存在显著差异例如Android的Button默认带有边框与背景色iOS的Button为纯文本样式鸿蒙平台桥接后的Button也会继承原生组件的样式特性难以实现多端视觉一致的胶囊式按钮设计。而TouchableOpacity本质是一个可点击的View组件支持通过StyleSheet完全自定义背景色、圆角、内边距、阴影等样式本页面中通过backgroundColor: #3B82F6、borderRadius: 8、paddingHorizontal: 24等属性实现了标准化的胶囊式按钮设计该样式在Android、iOS、鸿蒙平台均能实现完全一致的视觉效果无任何兼容问题。3. 跨端事件绑定TouchableOpacity的onPress事件是React Native绑定点击事件的标准方式其事件处理逻辑完全基于JavaScript的函数特性无任何平台专属API。在鸿蒙平台中React Native for HarmonyOS会将onPress事件桥接为鸿蒙ArkUI的onClick事件事件的传递、触发逻辑完全保留后续拓展“添加任务”功能时仅需在onPress中绑定对应的业务逻辑如打开添加弹窗、跳转到添加页面即可实现多端一致的事件处理无需为鸿蒙平台编写差异化的事件绑定代码。本页面中TouchableOpacity暂未绑定具体的业务逻辑但预留了事件绑定入口为后续功能拓展做好了技术铺垫保证了代码的可扩展性。本次解析的待办事项空状态页代码是一套兼顾跨端兼容性、产品体验、工程化设计的React Native实践实现基于React Native通用API与标准开发模式完成了空状态页面的视觉布局、用户引导、原生交互等核心功能其设计思路充分体现了React Native“一次编写、多端运行”的核心优势。页面选用的所有组件、API均已实现鸿蒙平台的桥接适配可直接基于React Native for HarmonyOS实现Android、iOS、鸿蒙多端的原生渲染与交互一致性无需修改核心业务代码仅需完成基础的工程配置即可实现鸿蒙落地。本文深入分析一个基于React Native实现的待办事项空状态组件从UI设计、交互模式到性能优化等多个维度进行技术解读重点探讨在任务管理类应用开发中的最佳实践和鸿蒙系统下的跨端适配策略。组件结构该空状态组件采用了极简但完整的架构设计const TodoListEmpty: React.FC () { return ( SafeAreaView style{styles.container} View style{styles.header} Text style{styles.title}待办事项/Text Text style{styles.subtitle}管理您的日常任务/Text /View ScrollView contentContainerStyle{styles.content} View style{styles.emptyState} Text style{styles.emptyIcon}{ICONS.empty}/Text Text style{styles.emptyTitle}暂无待办事项/Text Text style{styles.emptySubtitle}添加您的第一个任务开始高效管理时间/Text TouchableOpacity style{styles.addButton} Text style{styles.addButtonText}{ICONS.add} 添加任务/Text /TouchableOpacity /View /ScrollView /SafeAreaView ); };这种架构设计体现了几个关键的技术考量层次分明的布局结构从外到内依次是SafeAreaView、header、ScrollView和emptyState容器清晰的视觉层次标题、副标题、图标、说明文字和操作按钮形成完整的视觉流完整的交互闭环虽然当前是空状态但提供了添加任务的入口形成操作闭环真实演示案例代码// app.tsximportReact,{useState}fromreact;import{SafeAreaView,View,Text,StyleSheet,TouchableOpacity,ScrollView,Image,Dimensions}fromreact-native;// 图标库constICONS{add:➕,check:✅,delete:️,edit:✏️,todo:,completed:✔️,pending:⏳,empty:,task:,done:,list:✅,};const{width}Dimensions.get(window);constTodoListEmpty:React.FC(){return(SafeAreaView style{styles.container}View style{styles.header}Text style{styles.title}待办事项/TextText style{styles.subtitle}管理您的日常任务/Text/ViewScrollView contentContainerStyle{styles.content}View style{styles.emptyState}Text style{styles.emptyIcon}{ICONS.empty}/TextText style{styles.emptyTitle}暂无待办事项/TextText style{styles.emptySubtitle}添加您的第一个任务开始高效管理时间/TextTouchableOpacity style{styles.addButton}Text style{styles.addButtonText}{ICONS.add}添加任务/Text/TouchableOpacity/View/ScrollView/SafeAreaView);};conststylesStyleSheet.create({container:{flex:1,backgroundColor:#f8f9fa,},header:{paddingTop:40,paddingBottom:20,paddingHorizontal:20,backgroundColor:#ffffff,borderBottomWidth:1,borderBottomColor:#e9ecef,},title:{fontSize:24,fontWeight:bold,color:#333,textAlign:center,},subtitle:{fontSize:16,color:#666,textAlign:center,marginTop:8,},content:{padding:16,flexGrow:1,justifyContent:center,},emptyState:{alignItems:center,justifyContent:center,paddingVertical:60,backgroundColor:#ffffff,borderRadius:12,elevation:3,shadowColor:#000,shadowOffset:{width:0,height:2},shadowOpacity:0.1,shadowRadius:4,},emptyIcon:{fontSize:80,marginBottom:20,},emptyTitle:{fontSize:20,fontWeight:bold,color:#333,marginBottom:10,},emptySubtitle:{fontSize:16,color:#666,textAlign:center,marginBottom:30,lineHeight:22,paddingHorizontal:20,},addButton:{backgroundColor:#3B82F6,paddingHorizontal:24,paddingVertical:14,borderRadius:8,alignItems:center,},addButtonText:{color:#ffffff,fontSize:16,fontWeight:bold,},});exportdefaultTodoListEmpty;打包接下来通过打包命令npn run harmony将reactNative的代码打包成为bundle这样可以进行在开源鸿蒙OpenHarmony中进行使用。打包之后再将打包后的鸿蒙OpenHarmony文件拷贝到鸿蒙的DevEco-Studio工程目录去最后运行效果图如下显示本文深入剖析了React Native跨端开发中的待办事项空状态页面设计通过组件化架构和标准化布局实现了多端适配。技术选型上采用React Native原生API与TypeScript确保轻量性和跨平台兼容性特别针对鸿蒙系统做了深度优化。页面布局采用SafeAreaView解决异形屏适配ScrollView实现动态居中并预留功能扩展接口。空状态设计通过图标标题操作按钮的三层引导结构结合Emoji图标库减少资源依赖显著提升用户体验。样式系统使用StyleSheet.create优化性能与鸿蒙ArkUI天然兼容。整体方案体现了React Native跨端开发的核心优势为待办类应用提供了可复用的工程化实践。欢迎大家加入开源鸿蒙跨平台开发者社区一起共建开源鸿蒙跨平台生态。

相关新闻

鉴于之前已经询问过 Prism 的多项功能(包括异步验证),我将提供一个精简且聚焦的回答,基于 WPF 环境,避免重复之前的内容

鉴于之前已经询问过 Prism 的多项功能(包括异步验证),我将提供一个精简且聚焦的回答,基于 WPF 环境,避免重复之前的内容

Prism 异步验证 的示例。鉴于之前已经询问过 Prism 的多项功能(包括异步验证),我将提供一个精简且聚焦的回答,基于 WPF 环境,避免重复之前的内容(如 INotifyDataErrorInfo 和模拟 API 的异步验证示例&#…

2026/10/18 7:30:48 阅读更多 →
Oversecured Vulnerable Android App的Insecure Logger Service:敏感信息泄露漏洞实战

Oversecured Vulnerable Android App的Insecure Logger Service:敏感信息泄露漏洞实战

Oversecured Vulnerable Android App的Insecure Logger Service:敏感信息泄露漏洞实战 【免费下载链接】ovaa Oversecured Vulnerable Android App 项目地址: https://gitcode.com/gh_mirrors/ov/ovaa Oversecured Vulnerable Android App(简称ov…

2026/10/17 14:23:31 阅读更多 →
CANN/asc-devkit:矩阵乘输出的Channel拆分

CANN/asc-devkit:矩阵乘输出的Channel拆分

矩阵乘输出的Channel拆分 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https:…

2026/10/17 7:55:42 阅读更多 →

最新新闻

Typora 1.14.x 最新破解方法!亲测可用

Typora 1.14.x 最新破解方法!亲测可用

经常用Markdown的伙伴们肯定知道,Typora是一款“所见即所得”的Markdown语言编辑器,深受大家喜爱。不过,这款编辑器是以89人人民币/次/3台设备进行一次性费用收取的。作为一名资深白嫖党,在经过一周多的研究后,我成功找…

2026/10/18 7:31:04 阅读更多 →
2026年国内API聚合平台综合评测:版本时效、协议兼容与企业治理避坑指南

2026年国内API聚合平台综合评测:版本时效、协议兼容与企业治理避坑指南

很多开发者选API聚合平台时,眼睛盯着价格,实际踩坑最多的却是另外三件事:模型版本滞后、协议兼容性不过关、企业治理能力缺位。这三件事平日不起眼,一旦进入生产环境就会集中爆发。本文围绕模型覆盖广度、协议支持完整度、稳定性、…

2026/10/18 7:31:04 阅读更多 →
2026年国内Claude聚合平台实测:安全合规与稳定调用深度解析

2026年国内Claude聚合平台实测:安全合规与稳定调用深度解析

Claude 系列模型在国内开发者群体中的热度持续走高,Opus、Sonnet、Haiku 全系都被大量用于代码生成、文档处理与企业知识库场景。本次横评覆盖国内多家主流 Claude 聚合平台,验证场景包括国内网络直连、接口兼容与数据隐私等真实生产环境,从稳…

2026/10/18 7:31:04 阅读更多 →
复试机试二刷复盘:从错题到决策规则,把刷题经验变成提分能力

复试机试二刷复盘:从错题到决策规则,把刷题经验变成提分能力

临近复试的那几周,我几乎把所有空余时间都砸在了 OJ 上。要说最煎熬的,不是第一轮刷题时对着题目发呆的茫然,而是第二轮重刷时发现——当初 AC 过的题,现在连思路都想不起来。这篇复盘笔记,就是在这种被打击感里攒出来…

2026/10/18 7:31:04 阅读更多 →
AI可复现性挑战:原因、排查与实操流程

AI可复现性挑战:原因、排查与实操流程

做AI这行时间久了,会发现一个特别让人崩溃的现象:你照着论文的框架把代码写下来,跑出来的结果却跟论文里漂亮到不行的曲线差了十万八千里。这不是因为你太菜,而是因为AI研究的可复现性挑战,本身就是目前整个行业最头疼…

2026/10/18 7:31:04 阅读更多 →
ESP32分区表完全指南:从partitions.csv到OTA与Flash规划

ESP32分区表完全指南:从partitions.csv到OTA与Flash规划

第一次打开ESP32工程目录,看到partitions.csv这个文件时,我压根没当回事,以为就是个自动生成的临时配置。直到有一次编译报错提醒我“app partition is too small”,我才被迫去搞懂它。搞懂之后回头看,分区表几乎决定了…

2026/10/18 7:30:04 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →