纯静态H5商城模板:零依赖、可直跑、五页闭环
简介这是一套高仿主流APP的H5手机端商城静态页面合集面向前端初学者与求职者用于快速掌握移动端电商类页面的结构组织、交互逻辑与响应式布局实践。资源包含34个功能完整页面覆盖首页、商品分类、详情、购物车、订单管理、用户中心、登录注册、收货地址维护及提现流程等核心模块全部采用纯HTML/CSS/JS实现无后端依赖适合离线学习与二次开发。压缩包共133个文件含34个HTML页面、11个JS脚本含jQuery插件调用、3个CSS样式表及72个PNG图标资源辅以少量JPG图、字体文件eot/woff/ttf/svg整体仅2.02MB轻量易解压。已有1226人学习下载代码手写为主、结构清晰、命名规范配合sweetalert、mmenu等轻量插件实现弹窗与侧边栏交互是理解H5商城前端分层设计与静态资源协同的优质参考样本。1. H5商城.zip一个能直接扔进Nginx跑起来的手机端商城静态包适合快速验证UI逻辑、做原型联调、甚至当离线演示素材你有没有遇到过这种场景产品刚画完高保真原型前端还没开工但销售明天就要给客户现场演示一个“能点、能跳、能加购”的手机端商城或者测试同学想在没后端环境时先手动测一遍购物车跳转路径和商品列表渲染逻辑又或者你正带新人练手需要一个结构清晰、无框架黑盒、所有代码一眼可见的H5商城参考这个H5商城.zip就是为这类「立刻要、不求全、重可读、零依赖」的硬需求而生的。它不是Vue/React工程没有webpack配置、没有API代理、没有登录态管理——它就是纯HTMLCSSJavaScript组成的静态页面集合所有资源内联或本地引用解压后双击index.html就能在浏览器里打开扔进Nginx根目录就能用http://localhost访问。它不解决高并发、不处理支付回调、不对接用户中心但它把「商品列表→详情→加入购物车→购物车结算→订单确认」这条核心链路用最直白的DOM操作和localStorage模拟完整走通了五遍。适合UI工程师核对动效、测试同学构造边界用例、前端新人理解页面跳转本质也适合嵌入到企业微信/钉钉微应用中作为轻量级服务入口。2. 解构H5商城.zip从文件树到核心交互逻辑看懂它为什么能“开箱即用”2.1 文件结构与技术栈定位为什么说它是“纯前端静态页面”解压后你会看到一个极简的目录结构H5商城/ ├── index.html # 首页商品分类轮播推荐列表 ├── product-list.html # 商品列表页支持分类筛选 ├── product-detail.html # 商品详情页含规格选择、数量增减 ├── cart.html # 购物车页增删改查合计计算 ├── order-confirm.html # 订单确认页收货地址支付方式模拟 ├── assets/ │ ├── css/ │ │ └── style.css # 全局样式含rem适配、flex布局、图标字体 │ ├── js/ │ │ ├── utils.js # 工具函数getURLParam、formatPrice、debounce │ │ ├── cart-manager.js # 购物车核心add/remove/update/calculate │ │ └── main.js # 页面级初始化轮播初始化、事件绑定、数据加载 │ └── images/ # 所有图片资源png/jpg/svg无CDN外链 └── data/ └── mock-data.json # 模拟商品/分类/地址数据JSON格式无请求提示整个包不含任何.vue、.ts、.jsx文件不依赖Node.js环境package.json和node_modules完全不存在。所有JS逻辑均使用ES5语法编写兼容Android 4.4、iOS 8的WebView。style.css中font-size: 100px配合meta nameviewport contentwidthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalableno实现rem响应式这是它能在不同手机上“看起来像原生App”的底层保障。2.2 核心交互链路从点击商品到生成订单号每一步都落在localStorage上整个商城的“状态持久化”只依赖localStorage这是它脱离后端的关键设计。我们以“用户将商品A加入购物车”为例拆解真实执行流// cart-manager.js 中 addCartItem 函数节选 function addCartItem(item) { const cart JSON.parse(localStorage.getItem(cart) || []); const existing cart.find(i i.id item.id i.sku item.sku); if (existing) { existing.quantity item.quantity || 1; } else { cart.push({ id: item.id, sku: item.sku || default, name: item.name, price: item.price, image: item.image, quantity: item.quantity || 1 }); } localStorage.setItem(cart, JSON.stringify(cart)); updateCartBadge(); // 同步更新顶部购物车角标 }这段代码说明三件事数据来源item对象由product-detail.html中点击“加入购物车”按钮时通过>{ categories: [ {id: 1, name: 手机数码, icon: icon-phone}, {id: 2, name: 家用电器, icon: icon-appliance} ], products: [ { id: 1001, name: 旗舰智能手机X1, price: 2999, image: assets/images/phone-x1.jpg, category_id: 1, specs: [{name: 颜色, options: [星空黑, 极光银]}, {name: 内存, options: [128GB, 256GB]}], description: 搭载最新处理器... } ], addresses: [ { id: addr-001, name: 张三, phone: 138****1234, address: XX市XX区XX路1号, is_default: true } ] }关键设计点在于分类与商品强关联product.category_id对应categories.idproduct-list.html通过URL参数?category1过滤商品规格可扩展specs数组支持任意层级组合product-detail.html中动态渲染多级下拉选择后生成唯一sku如1001-black-128g地址复用order-confirm.html直接读取addresses数组渲染收货地址列表点击设为默认即更新is_default字段并同步localStorage。这种结构让五页之间通过localStorage和URL参数松耦合通信避免了全局状态管理库的引入也降低了新人理解成本——你看得见数据在哪、怎么来、怎么变。3. 快速上手三步部署五秒验证让H5商城在本地真正跑起来3.1 环境准备不需要Node、不需要Python只要一个浏览器和一个文件管理器你不需要安装任何开发工具。H5商城.zip的设计哲学就是“最小依赖”。验证它是否可用只需三步解压右键H5商城.zip→ “解压到H5商城/”双击进入解压后的H5商城/文件夹直接双击index.html观察浏览器自动打开首页检查轮播图是否自动切换、商品列表是否正常渲染、点击商品能否跳转到详情页。如果这三步成功说明你的浏览器Chrome/Firefox/Safari/Edge完全兼容该包。若失败如空白页、报错Uncaught ReferenceError大概率是浏览器禁用了file://协议下的localStorage常见于Safari隐私模式此时请跳至3.2节用简易HTTP服务启动。注意不要试图用VS Code的Live Server插件打开——它会注入额外脚本可能干扰localStorage读写。务必用系统默认浏览器双击或用3.2节方案。3.2 本地HTTP服务启动用Python或Nginx绕过file://限制当双击index.html失效时尤其在Safari或某些企业版Chrome中你需要一个真正的HTTP服务。这里提供两种零配置方案方案一Python内置HTTP服务推荐给无Nginx经验者确保已安装Python 3.x命令行输入python --version确认然后在H5商城/目录下执行# Windows/Linux/macOS通用 python -m http.server 8000执行后终端会显示Serving HTTP on 0.0.0.0 port 8000此时打开浏览器访问http://localhost:8000即可。所有页面跳转、购物车增减、订单提交全部正常工作。python -m http.server是Python标准库模块无需额外安装且默认允许localStorage读写。方案二Nginx一键托管推荐给已有Nginx的用户将H5商城/整个文件夹复制到Nginx的html/目录下如/usr/local/nginx/html/h5-mall/然后修改Nginx配置# nginx.conf 中 server 块内添加 location /h5-mall/ { alias /usr/local/nginx/html/h5-mall/; index index.html; # 关键允许跨域字体加载因css中用了iconfont add_header Access-Control-Allow-Origin *; }重启Nginx后访问http://localhost/h5-mall/。此方案优势在于可直接复用生产Nginx配置如gzip压缩、缓存头且能真实模拟线上静态资源托管环境。3.3 核心功能验证清单五页逐项测试确认无逻辑断点不要只点首页轮播就认为“跑起来了”。请按以下顺序手动验证每步耗时不超过30秒页面操作步骤预期结果验证目的index.html点击顶部“手机数码”分类tabURL变为product-list.html?category1列表只显示手机类商品测试URL参数路由与分类过滤product-list.html点击任一商品卡片跳转至product-detail.html?id1001页面显示正确商品信息测试商品ID透传与详情加载product-detail.html选择“颜色星空黑”“内存256GB”点击“加入购物车”右上角购物车角标数字1控制台无报错测试规格组合生成SKU与localStorage写入cart.html进入后修改某商品数量为0 → 点击“删除”该商品从列表消失角标数字同步更新测试购物车实时计算与DOM更新order-confirm.html点击“提交订单”弹出提示“订单提交成功订单号ORDabc123”localStorage.orders新增一条记录测试订单快照生成与持久化血泪经验曾有同事在product-detail.html中误删了script srcassets/js/cart-manager.js标签导致“加入购物车”按钮完全无响应但页面其他功能正常。这种错误不会报错只会静默失效——所以必须逐页验证不能只信首页。4. 避坑指南五个真实踩过的坑省下你两小时调试时间4.1 现象点击商品跳转后详情页显示“商品不存在”控制台报Cannot read property name of undefined原因product-detail.html通过URL参数id查找mock-data.json中的商品但mock-data.json里该id对应的商品对象被误删或ID类型不匹配如JSON中是字符串1001而JS中用数字1001查找。解决打开product-detail.html找到const productId getURLParam(id);这一行在其下方加一行console.log(查找ID:, productId, 数据中ID:, data.products[0].id);对比类型与值。确保mock-data.json中所有id字段均为字符串并在JS中统一用String(productId)转换后再查找。4.2 现象购物车角标数字不更新或更新延迟半秒以上原因cart-manager.js中updateCartBadge()函数被多次重复绑定。常见于main.js中未做防重绑定每次页面跳转都重新执行document.addEventListener(DOMContentLoaded, init)导致updateCartBadge()被注册N次。解决在cart-manager.js顶部声明一个全局锁变量let badgeUpdateLock false;修改updateCartBadge()为function updateCartBadge() { if (badgeUpdateLock) return; badgeUpdateLock true; const cart JSON.parse(localStorage.getItem(cart) || []); const count cart.reduce((sum, item) sum item.quantity, 0); document.querySelector(.cart-badge).textContent count || ; setTimeout(() { badgeUpdateLock false; }, 100); // 防抖释放锁 }4.3 现象iOS Safari中轮播图无法自动播放手动滑动后卡死原因iOS Safari对setTimeout在页面非活跃状态如切到其他Tab下的执行有严格限制utils.js中轮播的autoPlayInterval未做页面可见性检测。解决在轮播初始化代码中加入document.hidden监听let autoPlayTimer; function startAutoPlay() { if (document.hidden) return; // 页面不可见时暂停 autoPlayTimer setInterval(nextSlide, 3000); } document.addEventListener(visibilitychange, () { if (document.hidden) { clearInterval(autoPlayTimer); } else { startAutoPlay(); } });4.4 现象在微信内置浏览器中点击“提交订单”后无反应控制台报localStorage is not available原因微信iOS版在某些版本中对file://协议或特定域名下的localStorage有更严策略但根本原因是order-confirm.html中提交按钮的onclick事件被微信的WeixinJSBridge拦截。解决将内联onclick改为事件委托并在main.js中统一处理// 删除 order-confirm.html 中 button onclicksubmitOrder() 的 onclick 属性 document.getElementById(submit-order-btn).addEventListener(click, function(e) { e.preventDefault(); submitOrder(); });同时确保submitOrder()函数末尾有return false;避免事件冒泡。4.5 现象修改mock-data.json后页面数据未更新仍显示旧商品原因浏览器强缓存了data/mock-data.json尤其是Chrome对.json文件缓存策略激进默认不检查Last-Modified。解决在main.js中加载数据时强制添加时间戳参数// 原代码fetch(data/mock-data.json) // 改为 const timestamp new Date().getTime(); fetch(data/mock-data.json?t${timestamp}) .then(r r.json()) .then(data { /* 处理数据 */ });或更彻底——在Nginx配置中为.json文件禁用缓存location ~ \.json$ { add_header Cache-Control no-store, no-cache, must-revalidate, proxy-revalidate, max-age0; }5. 进阶改造三个可立即落地的定制化技巧让H5商城真正为你所用5.1 技巧一用正则批量替换商品图片路径十分钟接入自有CDN项目中所有图片路径形如assets/images/phone-x1.jpg但你的CDN域名是https://cdn.example.com/mall/。手动改几十个img src太傻。打开VS Code按CtrlHWindows或CmdHmacOS启用正则模式.*图标输入Find: (src|href)assets/images/(.?\.(?:png|jpg|jpeg|gif|svg)) Replace: $1https://cdn.example.com/mall/$2点击“全部替换”index.html、product-detail.html等所有文件中的图片路径瞬间更新。关键点$1保留原始属性名src或href$2捕获文件名避免误替换了CSS中的background-image路径。替换后记得清空浏览器缓存CtrlShiftR否则仍加载旧图。5.2 技巧二为购物车增加价格区间筛选三行代码搞定当前购物车页只显示所有商品但运营常需“查看100元以下商品”。打开cart.html在购物车列表上方添加筛选控件!-- 在 div classcart-list 上方插入 -- div classprice-filter label价格区间/label select idprice-range option valueall全部/option option value0-1000-100元/option option value100-500100-500元/option option value500500元以上/option /select /div然后在cart-manager.js末尾追加筛选逻辑document.getElementById(price-range).addEventListener(change, function() { const range this.value; const cart JSON.parse(localStorage.getItem(cart) || []); let filtered cart; if (range ! all) { const [min, max] range.split(-).map(Number); filtered cart.filter(item { const price parseFloat(item.price); if (range.endsWith()) return price min; return price min price max; }); } renderCartList(filtered); // 假设你已有 renderCartList 函数 });玄学提醒parseFloat(item.price)必须加因为mock-data.json中price是数字但localStorage序列化后变成字符串不转会导致2999 100返回true字符串比较实际应为数值比较。5.3 技巧三导出购物车数据为Excel支持线下核对与邮件发送测试同学常需把当前购物车内容导出为Excel发给产品确认。H5商城.zip本身无后端但可借助前端库SheetJSxlsx.js实现。下载https://cdn.sheetjs.com/xlsx-0.20.2/package/dist/xlsx.full.min.js放入assets/js/目录然后在cart.html底部script前添加script srcassets/js/xlsx.full.min.js/script script function exportCartToExcel() { const cart JSON.parse(localStorage.getItem(cart) || []); const ws_data [ [商品ID, 名称, 单价(元), 数量, 小计(元)] ].concat( cart.map(item [ item.id, item.name, parseFloat(item.price).toFixed(2), item.quantity, (parseFloat(item.price) * item.quantity).toFixed(2) ]) ); const ws XLSX.utils.aoa_to_sheet(ws_data); const wb XLSX.utils.book_new(); XLSX.utils.book_append_sheet(wb, ws, 购物车); XLSX.writeFile(wb, 购物车_${new Date().toISOString().slice(0,10)}.xlsx); } /script !-- 在购物车页添加按钮 -- button onclickexportCartToExcel() classbtn-export导出Excel/button点击按钮即生成购物车_2024-06-15.xlsx双击可直接用Excel打开。注意此功能在Safari中需用户主动点击触发不能自动下载符合浏览器安全策略。从那以后我每次接手新H5项目都会先解压一个H5商城.zip把它当成“前端乐高底板”——缺轮播就抄index.html里的缺规格选择就扒product-detail.html的DOM结构连购物车计算逻辑都直接ctrlc/v进自己项目再微调。它不炫技、不造轮子、不卷框架就老老实实把一件事做透让一个商城的核心流程在纯静态环境下稳稳地跑起来。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

手把手教程:用键盘或 Meta Quest 驱动 Cosmos-H-Dreams,实时生成手术缝合视频

手把手教程:用键盘或 Meta Quest 驱动 Cosmos-H-Dreams,实时生成手术缝合视频

【免费下载链接】Cosmos-H-Dreams 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/Cosmos-H-Dreams 点击查看 免费下载 Cosmos-H-Dreams 是 NVIDIA 推出的实时交互式手术世界模型:给定一张手术相机画面和一条机器人动作流,它就能随你的…

2026/10/17 1:46:27 阅读更多 →
lol-skins 仓库解析:Battle Dove Seraphine 变色皮肤(Chroma)资源包清单与结构指南

lol-skins 仓库解析:Battle Dove Seraphine 变色皮肤(Chroma)资源包清单与结构指南

【免费下载链接】lol-skins Comprehensive collection of League of Legends skins available for custom use. 项目地址: https://gitcode.com/gh_mirrors/lo/lol-skins 点击查看 免费下载 导读 本文聚焦于开源仓库 lol-skins 中 Seraphine(萨勒芬妮&…

2026/10/17 1:46:27 阅读更多 →
Word转PDF自动生成目录全攻略:从样式大纲到批量处理与故障排查

Word转PDF自动生成目录全攻略:从样式大纲到批量处理与故障排查

/* 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 1:45:27 阅读更多 →

最新新闻

WinPython 精简版 dot 发行包深度解读:3.8.5.0 组件清单、变更历史与 changelog 生成机制

WinPython 精简版 dot 发行包深度解读:3.8.5.0 组件清单、变更历史与 changelog 生成机制

开发工具构建工具CLI包管理器 【免费下载链接】winpython A free Python-distribution for Windows platform, including prebuilt packages for Scientific Python. 项目地址: https://gitcode.com/gh_mirrors/wi/winpython 点击查看 免费下载 WinPython 是一个面…

2026/10/17 2:20:34 阅读更多 →
Zephyr定时器深度解析:从内核对象到中断上下文与周期漂移

Zephyr定时器深度解析:从内核对象到中断上下文与周期漂移

/* 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 2:20:34 阅读更多 →
基于YOLOv8的寄生虫分类识别检测系统:从数据标注到UI界面全实现

基于YOLOv8的寄生虫分类识别检测系统:从数据标注到UI界面全实现

做目标检测项目这几年,我见过最多的一类需求反而不在自动驾驶或工业质检,而在医疗显微图像。比如一张粪便涂片里,可能同时有蛔虫卵、钩虫卵、鞭虫卵,也可能只有杂质和气泡,检验人员一张一张看,又慢又费眼。…

2026/10/17 2:20:34 阅读更多 →
AI预测生产线崩溃:工业4.0软件QA的完整实践指南

AI预测生产线崩溃:工业4.0软件QA的完整实践指南

1. 为什么做“崩溃预测”:一次计划外停机的真实代价做工业4.0软件QA这几年,我见过太多把重点放在“功能测没测对”上的团队,却很少有人认真想过:产线上一台关键设备崩溃了,你的软件到底能不能兜住这个底?这…

2026/10/17 2:20:34 阅读更多 →
Flutter for OpenHarmony活动详情页实战:UI设计、报名闭环与踩坑适配

Flutter for OpenHarmony活动详情页实战:UI设计、报名闭环与踩坑适配

社团管理App开发到活动模块时,列表页只是开胃菜,真正拉开体验差距的是详情页。这次记录的是我在Flutter for OpenHarmony环境下实现活动详情的完整过程,包含页面结构设计、UI组件拆分、报名交互闭环,以及OpenHarmony适配中踩过的一…

2026/10/17 2:20:34 阅读更多 →
springboot演唱会票务服务平台14749-计算机课程设计/毕业设计

springboot演唱会票务服务平台14749-计算机课程设计/毕业设计

前言 📌博主介绍:一线全栈工程师,毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发,擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码&am…

2026/10/17 2:19:34 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →