HTML网页综合项目实战:从静态架构到组件化调试的完整指南
简介这是一份面向Web初学者与前端入门者的HTML综合实战练习包聚焦HTML基础语法、元素使用、页面布局和样式控制等核心技能旨在通过多页面仿站练习解决入门者“会看不会写”的问题。资源以三个递进式网页文件为主线从index.html的标准页面骨架到index2.html、index3.html中更复杂的表格、列表、表单、按钮与输入框等交互元素系统覆盖静态网页开发的常用标签、嵌套结构以及模块化设计思路。随包附带的案例效果图与图片目录可帮助对照设计稿逐一检查渲染结果并学习相对路径引用、图片格式选择及资源集中管理方法。整个压缩包仅1.2MB共12个文件其中3个HTML源文件支持直接编辑运行9张JPG素材图包含banner、logo、案例截图等常见页面区块轻量且目录清晰适合边学边改。已有567人学习下载适合在课堂教学、个人练习或作品展示场景中通过完整项目实操加深对外部样式表引入、多页面跳转和整体布局规划的理解最终收获一套可直接改写复用的静态网页项目模板为后续动态网页开发打下扎实基础。1. HTML网页综合项目实战先解决“全会但拼不成”的问题单看每一个知识点轮播会写、表单校验会写、响应式断点也会抄可一旦要把这些拼成一个真正能上线的页面很多人会卡在导航怎么抽公共、数据放哪里、跨页面怎么对齐这些环节上。HTML网页综合项目实战这份资源就是把这些模块全部组装起来的完整静态站点适合刚学完HTML基础的人也适合需要快速出静态页模板的开发者。它用原生三件套模拟了真实站点从结构到交互的完整链路拿到手先跑起来再逐个拆掉黑匣子。2. 架构设计与目录结构四种页面、四个 JS 模块和一套主题变量2.1 先想清楚站点形态模拟项目X由四个页面组成首页放轮播和公告列表页渲染内容卡片详情页展示单条内容表单页用于录入数据。四个页面都没有后端参与数据来源只有两处一处是静态JSON文件另一处是浏览器的本地存储。选择这种形态的原因在于HTML网页综合项目实战的目标不是讲后端而是要演示一个完整站点里页面与页面之间怎么跳转、数据怎么流动把服务器层去掉之后前端的职责反而更容易暴露出来。既然是静态站项目内所有资源都采用相对路径引用。比如首页里的样式入口写成./css/style.css脚本入口写成./js/main.js。这样在本地双击打开和上线部署到子目录时都不会因为根路径变化而报错这个细节后面避坑章节还会单独展开。2.2 目录结构逐层拆先看目录模块边界一目了然html-project/ ├── index.html ├── list.html ├── detail.html ├── form.html ├── css/ │ ├── style.css │ └── responsive.css ├── js/ │ ├── main.js │ ├── carousel.js │ ├── form-validate.js │ └── storage.js ├── assets/ │ ├── images/ │ └── data/ │ └── content.json └── README.mdcss目录刻意分成两份style.css负责全局样式、设计变量和组件外观responsive.css只放媒体查询。这样做的好处是调整小屏适配时不用在几百行的组件样式里翻找断点js目录也按职责拆成四个文件轮播出问题只开carousel.js表单校验出问题只开form-validate.js不会牵一发动全身。每个文件的职责可以浓缩成一张表文件职责说明index.html页面入口首页轮播位与公告区list.html内容列表从content.json读取数据渲染卡片detail.html详情展示根据URL参数定位单条内容form.html数据录入校验后写入localStoragecss/style.css全局样式设计变量、通用类、组件外观css/responsive.css响应式适配只放媒体查询不写业务样式js/main.js初始化入口渲染公共导航、按页面分发初始化任务js/carousel.js轮播组件维护当前索引和自动播放定时器js/form-validate.js表单校验校验规则与UI解耦js/storage.js本地存储封装统一管理key避免字符串散落assets/data/content.json模拟数据列表页与详情页共用assets/data/content.json作为数据源结构通常是数组嵌套对象的形态页面渲染时用map生成卡片。这里我想强调一个习惯凡是会被多个页面读取的数据都塞进这个JSON里统一维护改一条数据不用进HTML里翻找硬编码。2.3 公共导航的组件化思路真实网站的头部菜单不会只在首页出现四个页面如果各复制一份导航HTML后续改一个链接要找四处替换。模拟项目X的处理方式接近轻组件每个页面都放一个空的header容器然后在main.js里用一个数组维护导航配置并统一渲染。/* js/main.js 公共导航渲染 */ const NAV_ITEMS [ { label: 首页, href: ./index.html }, { label: 列表页, href: ./list.html }, { label: 详情页, href: ./detail.html }, { label: 表单页, href: ./form.html } ]; function renderNav(activeLabel) { const nav document.querySelector(#site-nav); if (!nav) return; nav.innerHTML NAV_ITEMS.map(item { const isActive item.label activeLabel; return a href${item.href} classnav-link${isActive ? active : }${item.label}/a; }).join(); }renderNav有两点值得学。一是所有导航项收敛到NAV_ITEMS数组里改文字、改链接都只动这一处这是“配置与渲染分离”的最简形态二是activeLabel参数由每个页面在调用时传入当前页高亮就不会错位。每个页面的底部脚本只需要一行renderNav(列表页);用innerHTML渲染导航是一种取舍优点是代码少、结构直观缺点是如果数据来自用户输入需要防范XSS。这个项目里NAV_ITEMS是写死的内部配置所以安全性没问题这点在你自己二次开发时需要注意。2.4 数据文件的字段约定content.json的字段设计直接决定了列表页和详情页怎么渲染。模板里约定成下面这种结构{ items: [ { id: 1, title: 公告标题, summary: 列表页卡片上显示的摘要, cover: ./assets/images/card-1.jpg, publishTime: 2025-01-01 } ] }id字段在详情页中的作用很关键detail.html通过读取URL参数?id1再用find在items里筛出对应那条数据。cover字段可以留空渲染时会自动显示占位图。如果你要接入真实数据只需要把items里的静态值替换成后端接口返回的字段页面不需要改。2.5 主题变量与视觉换肤的基础样式部分没有把颜色硬编码在组件里而是把设计层面的值统一抽到:root里/* css/style.css 主题变量 */ :root { --primary-color: #2c7be5; /* 主色按钮和链接共用 */ --text-color: #333; /* 正文颜色 */ --bg-color: #f5f6fa; /* 页面背景 */ --card-bg: #ffffff; /* 卡片背景 */ --radius: 8px; /* 统一圆角 */ --shadow: 0 2px 8px rgba(0, 0, 0, 0.08); /* 卡片阴影 */ }之后按钮、链接、hover状态、卡片阴影全部引用var(--primary-color)这类变量。换主题色时只改上面这一处全站组件会同步变化不用再全文搜索替换颜色值。我一般会把间距单位、圆角、字体族也纳入变量体系二次开发时只需动这一个文件视觉风格就能整体切换。模板里这些变量基本覆盖了大多数常见页面组件的诉求。3. 核心模块拆解从静态骨架到轮播、表单存储的一条完整链路3.1 页面骨架与语义化标签首页的HTML骨架比想象中简单真正负责渲染的都是后续脚本!DOCTYPE html html langzh-CN head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 title首页/title link relstylesheet href./css/style.css link relstylesheet href./css/responsive.css /head body header idsite-nav!-- 公共导航由 main.js 渲染 --/header main section classhero aria-label轮播区域/section section classnotice aria-label公告列表/section /main footer classsite-footer版权信息/footer script src./js/storage.js/script script src./js/carousel.js/script script src./js/main.js/script /body /htmlviewport的widthdevice-width和initial-scale1.0决定了移动端按设备宽度渲染标题里“响应式布局”靠的就是它配合CSS断点。脚本集中放在body底部因为脚本执行时需要前面的DOM已经存在放在head里会让querySelector拿不到元素这也是不少新手首次把轮播跑不起来的根源。main.js按页面分发初始化任务在首页只会激活轮播和公告逻辑到列表页则跳过轮播直接渲染列表。这种“每个页面各自检测DOM是否存在”的调度方式让同一个main.js可以被所有页面引用而不冲突。3.2 布局体系Flex 和 Grid 的适用边界页面主体内容用Grid布局这是模拟项目X响应式的核心/* css/style.css 列表卡片布局 */ .content-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }repeat(auto-fill, minmax(280px, 1fr))的意思是容器足够宽就多放几列每一列最小280px宽出来的空间平均分给所有列。也就是说在PC端可能是三列或四列并排到了平板自动缩成两列整个过程由浏览器计算不需要写额外媒体查询。顶部导航则用Flex横向排列因为导航项数量固定Flex处理“一行内左对齐、间距均匀”更顺手。小屏的适配在responsive.css里做拦截/* css/responsive.css 窄屏降级 */ media (max-width: 768px) { .content-grid { grid-template-columns: 1fr; } .site-header { flex-direction: column; gap: 12px; } }768px这里是一个经验断点小于它时卡片强制单列导航从横排变竖排。实际项目里断点的数值应该结合内容测试不必迷信固定值。模拟项目X把文件拆成两个就是为了让你改断点时不用在业务样式里大海捞针。3.3 轮播图组件原生JS控制位移索引轮播图是首页的互动担当但核心代码只有十几行/* js/carousel.js 轮播组件 */ (function initCarousel() { const track document.querySelector(.carousel-track); if (!track || track.children.length 1) return; const items track.children.length; let current 0; setInterval(() { current (current 1) % items; // 到末尾回绕到0 track.style.transform translateX(-${current * 100}%); }, 3000); })();track是轮播轨道容器items是轮播项数量current记录当前索引。每次定时器触发时把current加1通过取模运算在最后一张之后回绕到首张再用translateX移动一整个视口的宽度。3000是轮播间隔毫秒数可以按产品节奏调整比如广告位改成5000、产品展示改成2000。有一个细节容易翻车如果轨道没设transition位移会在瞬间完成看起来就是跳变而不是滑动。所以对应的CSS一般是.carousel-track { display: flex; transition: transform 0.4s ease; }组件挂载前先检查track是否存在不存在就直接return这个防御让carousel.js可以被全站引用即使某个页面没有轮播也不会报错。模拟项目X的轮播只做自动播放如果你要加入左右按钮本质上是手动修改current后执行同样的位移逻辑。3.4 表单校验逻辑与UI解耦表单页的校验不依赖任何UI框架它接收DOM表单对象返回结构化结果/* js/form-validate.js 表单校验 */ function validateForm(form) { const username form.username.value.trim(); if (username.length 2) { return { ok: false, msg: 用户名至少需要2个字符 }; } const password form.password.value; if (password.length 6) { return { ok: false, msg: 密码长度不能少于6位 }; } return { ok: true, msg: }; }函数返回一个对象而不是直接弹窗提示这样校验规则和展示方式就解耦了。调用方可以决定错误信息显示在input下方还是弹窗里未来想加“邮箱格式”“手机号格式”也只需要在return之前多几段判断。form.username这种点语法要生效前提是表单控件要有name属性这也是新手经常漏掉的地方。表单页提交时的完整流程在main.js里串起来/* js/main.js 表单提交调度 */ function bindForm() { const form document.querySelector(#entry-form); if (!form) return; form.addEventListener(submit, function (e) { e.preventDefault(); // 阻止页面刷新 const result validateForm(form); if (!result.ok) { alert(result.msg); return; } const item { title: form.username.value.trim(), time: new Date().toLocaleString(), content: form.content.value.trim() }; saveItem(item); // 写入本地存储 form.reset(); }); }e.preventDefault()是这里的关键它拦下浏览器默认的整页提交刷新给脚本接管的机会。saveItem来自storage.js数据写入成功后表单重置页面不会跳转。这样用户就看到“提交完成但页面仍在”的效果比传统提交模式更适合演示前端的存储链路。3.5 本地存储封装与跨页面数据流动storage.js对外只暴露两个函数读和写key统一成常量/* js/storage.js 本地存储封装 */ const STORAGE_KEY projectX.items; function saveItem(item) { const list JSON.parse(localStorage.getItem(STORAGE_KEY) || []); list.push(item); localStorage.setItem(STORAGE_KEY, JSON.stringify(list)); } function getItems() { return JSON.parse(localStorage.getItem(STORAGE_KEY) || []); }localStorage只能存字符串所以先把原来的数组取出来、push新对象、再序列化写回去。空值兜底用|| []避免第一次读取时parse一个null导致报错。列表页在渲染完content.json里的内容后会再调用getItems()把表单页新增的数据追加到卡片列表尾部。这里的存储按origin隔离localhost:8080访问到的数据和file协议访问到的数据互不相通后者甚至连localStorage都可能时好时坏。因此项目运行必须统一走HTTP环境这也是第4章避坑的重点。4. 运行调试与避坑排查启动方式、DevTools 看板与五个高频翻车点4.1 本地启动的三种方式模拟项目X没有构建过程任意静态服务器都能把它带起来。最常用的做法是用VS Code打开项目根目录装一个Live Server类的静态服务器扩展右键index.html选择Open with Live Server浏览器会自动打开localhost:5500。这种方式自带热重载CSS和JS改完刷新即生效也是我日常开发的首选。另一个办法是把项目目录当成Python静态目录cd html-project python -m http.server 8080然后访问http://localhost:8080/index.html。-m http.server是Python内置模块8080是端口端口被占用时换一个即可。这个命令不依赖任何IDE适合临时给别人演示项目。最省事也最容易翻车的方式是直接双击index.html用file协议打开。纯静态页面可能正常显示但只要代码里存在fetch JSON或写入localStorage浏览器就会因为跨域或隐私限制而报错。为了不让浏览器行为干扰页面逻辑统一用HTTP方式打开比较稳。启动后留意地址栏前缀必须是http如果看到file开头就该回去换启动方式了。4.2 五个高频踩坑记录第一条列表页空内容且控制台报Failed to fetch。现象是页面结构正常、卡片区却是空白。原因是直接用file协议双击打开了项目浏览器拦截了对本地JSON文件的读取。解决的办法是改用本地服务器访问Network面板里请求URL那一栏会从file变成http。第二条改完CSS刷新后没有任何变化。现象是样式没更新关了再开也还是旧效果。原因是浏览器对CSS做了强缓存特别是带相同文件名的样式在刷新时会直接走缓存。解决方法是打开DevTools的Network面板勾选Disable cache或者给CSS链接加上版本参数style.css?v2。无痕窗口也是一个好用的验证手段至少能排除本地缓存的干扰。第三条导航高亮张冠李戴。现象是人在列表页高亮却出现在首页链接上。原因是renderNav接收的activeLabel与NAV_ITEMS里的label写得不一致字符串匹配失败后高亮缺省落在第一项。解决的方法是各页面统一从一个常量读取当前页标识不在页面里手写“列表”或“列表页”这类疑似字符串。第四条轮播每三秒闪跳一次没有滑动效果。现象是画面直接跳到下一张完全看不到动画。原因是track样式里漏了transition属性位移执行瞬间完成。解决方法是给.carousel-track补上transition: transform 0.4s ease同时确保轮播项宽度一致不然位移百分比会算错。第五条表单提交后刷新页面数据消失。现象是数据在页面停留一下就没了。原因是提交按钮的默认type是submit表单被当成传统提交给整页刷新了写入逻辑根本没机会执行。解决方法是把按钮写成typebutton并手动绑定点击事件或者在submit监听里调用e.preventDefault()。4.3 用 DevTools 排查问题的看板顺序排查问题不需要背教程记住“现象对应面板”就够了现象优先看的面板重点检查项Console报红Console脚本路径、变量未定义、语法错误样式不对Elements类名写没写对、样式被谁覆盖数据没渲染Network请求路径、状态码、是不是file协议存储不对ApplicationlocalStorage的key、值是否是字符串Console面板胜在直接报错行号能指到具体文件Network面板是查数据流的核心看Response里的JSON内容是不是预期Application面板则是表单加存储联动失败的破案现场两个页面只要key不一致数据就必然读不到。这三个面板配合使用能把大部分静态页问题定位到具体文件。遇到本地存储读不到数据时不要先怀疑逻辑而是打开Application面板看左侧的key和storage.js里的STORAGE_KEY逐个字母对比一遍通常立即破案。5. 二次开发改造换肤、加页面、接组件的三个入手点5.1 换肤换文案换主题只改三处css/style.css的:root变量、js/main.js的NAV_ITEMS、assets/data/content.json的内容。把--primary-color换成品牌色导航文字改成业务名称JSON里的模拟数据换成真实条目刷新就是一套新站点。整个过程不需要理解业务骨架就能完成适合先改外观再深入逻辑。5.2 新增一个页面新增页面从复制list.html开始。复制一份改成search.html修改页面title把主体区域按需重写再在NAV_ITEMS里追加一条指向search.html的链接。公共导航是动态渲染的所以其他页面无需改动。唯一别忘的是如果新页面要用到本地存储记得script标签里保底引入storage.js不然调用saveItem会直接报未定义。5.3 接一个新组件的通用套路模板的初始化调度有固定规律新增组件在js/下建独立文件在初始化函数里加一行检测组件只在自身DOM存在时激活。/* js/main.js 初始化调度 */ document.addEventListener(DOMContentLoaded, function () { renderNav(列表页); if (document.querySelector(.carousel-track)) initCarousel(); if (document.querySelector(.content-grid)) renderList(); if (document.querySelector(#entry-form)) bindForm(); });后续加Tab切换、返回顶部、图片懒加载都按这个模式复制新建文件暴露初始化函数在main.js中注册。这样做的好处是页面与页面之间的功能彼此隔离出问题时单个文件就能定位。验证任何改动把四个页面分别走一遍再在Network面板确认JSON与本地存储请求都正常返回就可以收工了。以前我改网页项目喜欢只刷新当前页结果有一次改完导航漏了详情页的引用上线后从列表页点进详情直接404。从那以后我每改一处公共模块都会强制把四个页面完整跑一遍再盯一遍Network和Console两个面板这个习惯替我拦下了不少低级事故。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

Canvas 时间轴插件实现:拖动、缩放与批量渲染的底层硬核拆解

Canvas 时间轴插件实现:拖动、缩放与批量渲染的底层硬核拆解

简介:这是一份基于Canvas实现的时间轴插件,配合jQuery完成交互控制,适用于视频回放、监控录像检索等需要按时间点定位和展示录像片段的场景。插件主要面向具备一定前端基础、希望快速集成时间轴交互的开发者,可直接引入现有项目&a…

2026/10/18 8:55:22 阅读更多 →
TDA线程分析实战:从jstack到死锁、高CPU定位指南

TDA线程分析实战:从jstack到死锁、高CPU定位指南

简介:TDA(Thread Dump Analyzer)2.3.3是一款面向Java开发与运维人员的线程分析工具,用于解析线程Dump日志,快速定位死锁、锁竞争与CPU占用高等问题,适合排查性能瓶颈和线上故障。压缩包体积仅1.3MB&#xf…

2026/10/18 8:55:22 阅读更多 →
AI培训学什么?算法、数据、应用三条技术栈完整拆解

AI培训学什么?算法、数据、应用三条技术栈完整拆解

每次有朋友问我 AI 培训主要学什么,我都先反问一句:你想让模型从你手里长出来,还是只想把现成的模型用好?这个问题不解决,后面的课表再丰富也没用。很多人一听说 AI,就觉得先要把数学啃穿才有资格学&#x…

2026/10/18 8:55:22 阅读更多 →

最新新闻

C# IOCP高性能Socket服务:池化设计与5000+并发实战

C# IOCP高性能Socket服务:池化设计与5000+并发实战

简介:这是一份面向C#中高级开发者与网络编程学习者的Socket高性能异步通信实战示例,聚焦.NET Framework下SocketAsyncEventArgs核心机制的应用落地,解决传统Begin/End模式性能瓶颈与高并发连接管理难题。资源包含20个文件,以6个核…

2026/10/18 9:47:34 阅读更多 →
VS2019无法定位程序输入点到IPHLPAPI.DLL?排查与修复全指南

VS2019无法定位程序输入点到IPHLPAPI.DLL?排查与修复全指南

前阵子接手一台旧开发机,双击 Visual Studio 2019 的图标,启动画面刚出来,屏幕上就弹了一个对话框,标题栏写着“无法找到入口点”:无法定位程序输入点 RtlGetPersistedStateLocation 于动态链接库 IPHLPAPI.DLL 上。点…

2026/10/18 9:47:34 阅读更多 →
基于Java Swing和MySQL的学生选课管理系统全解析

基于Java Swing和MySQL的学生选课管理系统全解析

简介:一套基于Java Swing与MySQL的学生选课管理系统项目,适配IntelliJ IDEA,面向Java初学者及需要完成课程设计、毕业设计的学生。系统划分为系统管理、数据管理和数据查询三大部分:系统管理实现密码设置、用户登录和退出&#xf…

2026/10/18 9:47:34 阅读更多 →
青少年开源参与指南:从零开始第一次PR到开源社区成长路径

青少年开源参与指南:从零开始第一次PR到开源社区成长路径

1. 先从背景说起:为什么会有“青少年开源”这个议题1.1 社区里那些让我意外的年轻人这几年混迹各种开源社区和线下技术活动,有个现象越来越明显:出现在贡献者列表里的年轻面孔越来越多了。以前遇到一个高中生PR(Pull Request&…

2026/10/18 9:47:34 阅读更多 →
李雅普诺夫指数与沃夫算法:从混沌判据到MATLAB实操

李雅普诺夫指数与沃夫算法:从混沌判据到MATLAB实操

简介:本资源是一份面向动力系统与混沌理论研究者的MATLAB实践工具包,聚焦李雅普诺夫指数的数值计算与稳定性判别,特别适合控制工程、非线性科学及时间序列分析方向的研究生与科研人员。压缩包内含1个核心MATLAB脚本文件(lyapunov_…

2026/10/18 9:47:34 阅读更多 →
基于计算机视觉的寄生虫卵自动识别:从数据到部署的实战经验

基于计算机视觉的寄生虫卵自动识别:从数据到部署的实战经验

寄生虫卵的人工镜检,做过的都知道有多费眼睛。我接触过不少基层检验科和疾控实验室的老师,他们每天要看几十上百张涂片,在显微镜下一帧一帧地找虫卵,不仅效率低,而且极度依赖个人经验——同一个视野,老专家…

2026/10/18 9:46:34 阅读更多 →

日新闻

基于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 阅读更多 →