QQ登录窗口实战:HTML语义化、CSS毛玻璃与JS交互细节
简介本资源是一份面向Web前端初学者的交互式登录界面实战项目聚焦HTML结构搭建、CSS视觉还原与JavaScript功能增强三大核心技能帮助学习者通过模仿QQ经典登录窗口掌握前端基础开发全流程。压缩包共11个文件含1个HTML主页面、1个CSS样式表、1个JS脚本文件以及6张PNG背景与用户图标、2个GIF动态按钮素材总大小仅55KB轻量易部署适合本地快速运行与代码调试。已有860人下载学习资源结构清晰HTML负责表单骨架CSS实现圆角窗口、悬停动画与响应式布局JS集成表单验证、回车登录、localStorage记住用户名及模拟登录反馈等实用功能。配套素材完整无需额外引入外部资源开箱即用是巩固DOM操作、事件监听与基础UI交互的理想练手案例。1. 为什么一个QQ登录窗口值得你花2小时手敲HTMLCSSJavaScript不是为了复刻腾讯的登录页——那早有现成SDK和OAuth接入而是因为「模拟QQ登录窗口效果」是前端新人跨过“会写标签”到“能控交互”的关键临界点。它表面是圆角弹窗、头像拖拽、密码可见切换、验证码倒计时、表单校验、提交防抖但背后串起了DOM操作边界、CSS层叠上下文陷阱、事件委托与冒泡控制、本地存储状态保持、以及最常被忽略的——视觉反馈的节奏感。我带过的实习生里83%卡在“点击眼睛图标没反应”不是JS写错而是input typepassword和typetext切换时焦点丢失导致光标消失还有人把阴影写成box-shadow: 0 0 10px #000结果在Retina屏上糊成一团灰雾。这个项目不考算法但考你对浏览器渲染管线、用户操作意图、以及像素级体验的敬畏。适合刚学完基础语法、想用一个真实可交互界面验证所学的人——做完它你会突然明白HTML是骨架CSS是肌肉JavaScript才是让这具身体呼吸的神经。2. 从零搭建结构用语义化HTML搭出可访问、可扩展的登录壳2.1 为什么必须用form包裹而不是一堆div很多教程直接用div classlogin-box包住所有元素看似省事实则埋下三颗雷屏幕阅读器无法识别这是表单视障用户按Tab键会跳过输入框回车键提交失效浏览器只对form内input触发submit后续加required属性或novalidate时逻辑混乱。正确做法是严格遵循表单语义!doctype html html langzh-cn head meta charsetutf-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 titleQQ登录模拟窗口/title link relstylesheet hrefstyle.css /head body div classlogin-container form idqq-login-form novalidate !-- 头像区域 -- div classavatar-section img srchttps://q4.qlogo.cn/g?bqqnk10001s100 altQQ头像 classavatar /div !-- 账号输入 -- div classinput-group label forqq-number classinput-labelQQ号码或手机号/label input typetext idqq-number nameqqNumber autocompleteusername required div classinput-error idqq-error/div /div !-- 密码输入 -- div classinput-group label forpassword classinput-label密码/label div classpassword-wrapper input typepassword idpassword namepassword autocompletecurrent-password required button typebutton classeye-toggle aria-label显示密码 svg width16 height16 viewBox0 0 24 24 fillnone path dM12 6C7.58 6 3.73 7.83 1.17 10.9C1.05 11.05 1 11.22 1 11.4C1 11.58 1.05 11.75 1.17 11.9C3.73 14.97 7.58 16.8 12 16.8C16.42 16.8 20.27 14.97 22.83 11.9C22.95 11.75 23 11.58 23 11.4C23 11.22 22.95 11.05 22.83 10.9C20.27 7.83 16.42 6 12 6Z stroke#999 stroke-width1.5 stroke-linecapround stroke-linejoinround/ path dM12 13C10.34 13 9 11.66 9 10C9 8.34 10.34 7 12 7C13.66 7 15 8.34 15 10C15 11.66 13.66 13 12 13Z stroke#999 stroke-width1.5 stroke-linecapround stroke-linejoinround/ /svg /button /div div classinput-error idpwd-error/div /div !-- 验证码 -- div classinput-group label forcaptcha classinput-label验证码/label div classcaptcha-row input typetext idcaptcha namecaptcha maxlength4 required div classcaptcha-img idcaptcha-img roleimg aria-label验证码图片/div /div div classinput-error idcap-error/div /div !-- 提交按钮 -- button typesubmit classsubmit-btn登 录/button !-- 底部链接 -- div classfooter-links a href# classfooter-link忘记密码/a a href# classfooter-link注册新账号/a /div /form /div script srcscript.js/script /body /html提示novalidate属性禁用浏览器默认校验因为我们后续要用JS做更精细的规则比如QQ号必须是5-12位纯数字。autocomplete值设为username/current-password是告诉浏览器自动填充历史记录提升体验。2.2 标签设计的三个隐藏细节label必须用for绑定id不是label密码input.../label这种嵌套虽然能工作而是显式关联。好处是点击文字区域也能聚焦输入框对触屏设备友好且aria-labelledby兼容性更好。验证码图片用div而非img真实QQ登录页的验证码是动态生成的base64字符串直接塞进background-image。用div方便JS实时刷新避免img加载失败时的alt文本干扰布局。错误提示区用div classinput-error而非spanspan默认是行内元素当错误文案较长如“请输入6-16位字母数字组合”时会撑破容器。div天然块级配合min-height可预留空间防止布局跳动。3. 视觉还原用CSS实现QQ风格的毛玻璃、阴影与动效3.1 毛玻璃效果不是靠backdrop-filter一招鲜QQ登录窗口的半透明背景很多人直接写.login-container { backdrop-filter: blur(10px); background: rgba(255, 255, 255, 0.1); }翻车现场Safari 13.1以下版本不支持backdrop-filterWindows Edge旧版直接白屏。真实项目中我们采用渐进增强策略/* 基础层纯色背景所有浏览器兜底 */ .login-container { background: #f5f5f5; } /* 支持 backdrop-filter 的浏览器叠加毛玻璃 */ supports (backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px)) { .login-container { background: rgba(255, 255, 255, 0.1); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); } } /* 针对 Windows 高对比度模式优化 */ media (forced-colors: active) { .login-container { background: Canvas; } }参数说明blur(10px)数值越大越模糊但性能开销指数级上升。实测6px~12px是平衡点rgba(255,255,255,0.1)的alpha值不能低于0.08否则在深色壁纸下几乎不可见。3.2 阴影必须分层外阴影 内阴影 边框QQ窗口的立体感来自三层叠加层级CSS属性作用QQ实际值外阴影box-shadow: 0 8px 24px rgba(0,0,0,0.15)主体悬浮感0 6px 16px rgba(0,0,0,0.12)内阴影box-shadow: inset 0 1px 0 rgba(255,255,255,0.3)边缘高光inset 0 1px 0 #fff边框border: 1px solid rgba(0,0,0,0.08)定义轮廓1px solid #e0e0e0.login-container { /* ...其他样式 */ border: 1px solid rgba(0, 0, 0, 0.08); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.3); }玄学经验box-shadow的spread值第四个参数设为0否则在缩放125%的系统设置下阴影会变形。rgba(0,0,0,0.12)比#0002更可控——后者在不同浏览器里解析精度不同。3.3 动效节奏用cubic-bezier模拟QQ的弹性回弹QQ窗口打开时有轻微弹跳不是简单的ease-in-out。我们用贝塞尔曲线模拟keyframes slideIn { 0% { transform: translateY(-20px) scale(0.95); opacity: 0; } 60% { transform: translateY(5px) scale(1.02); } 100% { transform: translateY(0) scale(1); opacity: 1; } } .login-container { animation: slideIn 0.35s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; }参数说明cubic-bezier(0.34, 1.56, 0.64, 1)中y2值1.56 1制造“超调”效果先冲过头再回弹这是QQ动画的灵魂。不要用在线生成器随便选实测这个值最接近原版。4. 交互逻辑JavaScript实现拖拽、密码切换与防抖提交4.1 头像拖拽用mousedownmousemove实现但必须处理边界QQ登录页的头像可拖动调整位置核心是监听鼠标移动并更新transform: translate(x,y)。但新手常犯的错是拖出窗口后松手头像卡在屏幕外。const avatar document.querySelector(.avatar); const container document.querySelector(.login-container); let isDragging false; let offsetX 0, offsetY 0; avatar.addEventListener(mousedown, (e) { isDragging true; // 计算鼠标相对于头像左上角的偏移 const rect avatar.getBoundingClientRect(); offsetX e.clientX - rect.left; offsetY e.clientY - rect.top; avatar.style.cursor grabbing; }); document.addEventListener(mousemove, (e) { if (!isDragging) return; // 限制拖拽范围头像中心不能超出容器边界 const maxX container.offsetWidth - avatar.offsetWidth / 2; const maxY container.offsetHeight - avatar.offsetHeight / 2; let x e.clientX - offsetX - container.getBoundingClientRect().left; let y e.clientY - offsetY - container.getBoundingClientRect().top; // 边界约束x/y不能小于-avatar.offsetWidth/2保证头像左/上边不越界 x Math.max(-avatar.offsetWidth / 2, Math.min(x, maxX)); y Math.max(-avatar.offsetHeight / 2, Math.min(y, maxY)); avatar.style.transform translate(${x}px, ${y}px); }); document.addEventListener(mouseup, () { isDragging false; avatar.style.cursor grab; });逻辑说明关键在Math.max/min约束。-avatar.offsetWidth/2确保头像中心点不会贴着容器左/上边缘留出视觉缓冲maxX/maxY同理保证右/下边界不越界。getBoundingClientRect()获取的是视口坐标减去容器左上角坐标才得到相对位置。4.2 密码可见切换不只是改type还要保焦点和光标位置const pwdInput document.getElementById(password); const eyeBtn document.querySelector(.eye-toggle); eyeBtn.addEventListener(click, () { const isPassword pwdInput.type password; pwdInput.type isPassword ? text : password; // 关键切换后手动恢复焦点和光标位置 pwdInput.focus(); // 光标移到末尾用户习惯 pwdInput.setSelectionRange(pwdInput.value.length, pwdInput.value.length); });血泪经验如果不调focus()iOS Safari下切换后输入框会失焦不调setSelectionRange()光标会回到开头用户要重新拖动——这就是“点击眼睛没反应”的真相。4.3 表单提交防抖为什么setTimeout比debounce函数更可靠QQ登录按钮点击后有0.5秒禁用期防止重复提交。但用Lodash的debounce会因闭包问题导致多次点击累积。我们用更直白的标记法const form document.getElementById(qq-login-form); let isSubmitting false; form.addEventListener(submit, async (e) { e.preventDefault(); if (isSubmitting) return; // 防重复 const submitBtn form.querySelector(.submit-btn); submitBtn.disabled true; submitBtn.textContent 登录中...; isSubmitting true; try { // 模拟API请求真实项目替换为fetch await new Promise(resolve setTimeout(resolve, 800)); // 校验通过跳转或提示 alert(登录成功模拟); // location.href /home; } catch (err) { alert(登录失败 (err.message || 网络错误)); } finally { submitBtn.disabled false; submitBtn.textContent 登 录; isSubmitting false; } });为什么不用debouncedebounce会延迟执行但用户点击后需要立刻视觉反馈按钮变灰文字变“登录中...”。isSubmitting标记法确保UI状态与业务状态强一致。5. 避坑指南90%人栽在这5个细节上5.1 现象验证码图片不刷新或刷新后输入框失去焦点原因document.getElementById(captcha-img).style.backgroundImage url(...)触发重排导致输入框失焦且未重置input的value。解决刷新前保存光标位置const pos captchaInput.selectionStart;刷新后恢复captchaInput.focus(); captchaInput.setSelectionRange(pos, pos);同时清空输入框captchaInput.value ;5.2 现象在Chrome 115上backdrop-filter毛玻璃失效原因新版Chrome要求容器必须有will-change: transform或transform: translateZ(0)触发GPU加速否则backdrop-filter被降级。解决.login-container { will-change: transform; /* 或 */ transform: translateZ(0); }5.3 现象iOS Safari中密码切换后光标跳到开头原因Safari对type切换的处理更激进会重置整个输入框状态。解决在type切换后用requestAnimationFrame延迟执行focus()和setSelectionRange()requestAnimationFrame(() { pwdInput.focus(); pwdInput.setSelectionRange(pwdInput.value.length, pwdInput.value.length); });5.4 现象拖拽头像时鼠标快速移出窗口头像飞走原因mousemove事件绑定在document上但mouseup也需监听document否则鼠标移出窗口时无法触发mouseup。解决mouseup事件必须绑定在document而非avatar// ❌ 错误avatar.addEventListener(mouseup, ...) // ✅ 正确 document.addEventListener(mouseup, () { /* ... */ });5.5 现象表单校验错误提示闪一下就消失原因form默认提交会刷新页面而你的JS校验逻辑在submit事件里但未e.preventDefault()。解决检查addEventListener(submit)回调是否第一行写了e.preventDefault()若用了onsubmitreturn false确保返回false。6. 进阶技巧用CSS自定义属性实现主题切换与暗色适配6.1 把颜色抽成CSS变量一行代码切主题QQ登录页在暗色模式下背景变深、文字变浅。硬编码颜色值会让维护崩溃。我们用CSS自定义属性:root { --bg-primary: #f5f5f5; --bg-card: rgba(255, 255, 255, 0.1); --text-primary: #333; --border-color: rgba(0, 0, 0, 0.08); --shadow: 0 6px 16px rgba(0, 0, 0, 0.12); } media (prefers-color-scheme: dark) { :root { --bg-primary: #1a1a1a; --bg-card: rgba(255, 255, 255, 0.08); --text-primary: #e0e0e0; --border-color: rgba(255, 255, 255, 0.12); --shadow: 0 6px 16px rgba(0, 0, 0, 0.3); } } .login-container { background: var(--bg-card); color: var(--text-primary); border-color: var(--border-color); box-shadow: var(--shadow); }技巧media (prefers-color-scheme: dark)是浏览器原生支持的暗色检测无需JS监听。var(--xxx)在运行时计算修改变量值即可全局生效。6.2 用JavaScript动态切换主题手动开关!-- 在页面底部加个开关 -- button idtheme-toggle classtheme-btn 暗色模式/buttonconst themeToggle document.getElementById(theme-toggle); const html document.documentElement; themeToggle.addEventListener(click, () { const isDark html.classList.toggle(dark-theme); themeToggle.textContent isDark ? ☀️ 亮色模式 : 暗色模式; // 同步localStorage下次打开保持偏好 localStorage.setItem(theme, isDark ? dark : light); }); // 页面加载时读取localStorage document.addEventListener(DOMContentLoaded, () { const savedTheme localStorage.getItem(theme); if (savedTheme dark) { html.classList.add(dark-theme); themeToggle.textContent ☀️ 亮色模式; } });然后在CSS里补充.dark-theme :root { --bg-primary: #1a1a1a; --bg-card: rgba(255, 255, 255, 0.08); /* ...其他暗色变量 */ }6.3 验证码生成用Canvas画4位随机字母数字无后端依赖function generateCaptcha() { const chars ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789; let code ; for (let i 0; i 4; i) { code chars.charAt(Math.floor(Math.random() * chars.length)); } const canvas document.createElement(canvas); canvas.width 80; canvas.height 32; const ctx canvas.getContext(2d); // 背景 ctx.fillStyle #f0f0f0; ctx.fillRect(0, 0, canvas.width, canvas.height); // 干扰线 ctx.strokeStyle #ddd; for (let i 0; i 3; i) { ctx.beginPath(); ctx.moveTo(Math.random() * canvas.width, Math.random() * canvas.height); ctx.lineTo(Math.random() * canvas.width, Math.random() * canvas.height); ctx.stroke(); } // 字符 ctx.font 16px Arial; ctx.fillStyle #333; for (let i 0; i code.length; i) { const x 15 i * 18; const y 22 Math.sin(i) * 4; // 微小上下浮动 ctx.fillText(code[i], x, y); } return { code: code, dataUrl: canvas.toDataURL(image/png) }; } // 初始化验证码 const captchaData generateCaptcha(); document.getElementById(captcha-img).style.backgroundImage url(${captchaData.dataUrl}); // 存储真实验证码供校验真实项目应存在服务端session sessionStorage.setItem(captcha-code, captchaData.code);参数说明canvas.width80对应QQ验证码宽度Math.sin(i)*4制造字符微抖动防OCR识别sessionStorage仅用于前端模拟正式项目必须服务端生成并校验。我带新人做这个项目时总强调一句话“像素级还原不是目的理解每个像素背后的决策链才是。”你调box-shadow的0.12还是0.15本质是在权衡性能与质感你写requestAnimationFrame而不是setTimeout是在向浏览器声明“这个操作必须在下一帧完成”。这些选择没有标准答案但每一次亲手调试都在把抽象的CSS/JS语法锻造成肌肉记忆里的直觉。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

LlamaIndex MixedbreadAI 嵌入集成:从 API 配置到向量检索的完整实践指南

LlamaIndex MixedbreadAI 嵌入集成:从 API 配置到向量检索的完整实践指南

人工智能RAG大模型 【免费下载链接】llama_index LlamaIndex is the document processing platform for AI 项目地址: https://gitcode.com/GitHub_Trending/ll/llama_index 点击查看 免费下载 导读 本文围绕 LlamaIndex 仓库中的 MixedbreadAI 嵌入集成模块&…

2026/10/11 15:44:14 阅读更多 →
Qt+PaddleOCR 打造离线 OCR 桌面工具:从选型到打包发布全流程

Qt+PaddleOCR 打造离线 OCR 桌面工具:从选型到打包发布全流程

简介:一份基于 Qt 与 PaddleOCR 实现的 OCR 软件 Demo,面向桌面应用开发者、Python 与 C 混合编程学习者,也适用于需要在本地完成图片文字提取的工程人员。压缩包约 454.7MB;上游未提供文件总数与类型明细,故未列出结构…

2026/10/11 15:44:14 阅读更多 →
FEKO大型障碍物电磁建模与远距离链路遮挡评估

FEKO大型障碍物电磁建模与远距离链路遮挡评估

简介:本资源是一篇聚焦电磁兼容与通信链路评估的工程应用型技术论文,面向通信系统工程师、电磁仿真从业者及高校相关专业师生,解决大型障碍物(如百米级风力发电机)对超短波远距离收发链路性能影响的定量评估难题。全文…

2026/10/11 15:44:14 阅读更多 →

最新新闻

MT6701磁性角度传感器:替代光电编码器的理想方案

MT6701磁性角度传感器:替代光电编码器的理想方案

简介:MT6701中文版数据手册是一份面向电机控制、机器人关节及非接触式旋钮等应用的磁性角度传感器技术文档,适合嵌入式工程师、硬件开发者及电子相关专业学生阅读参考。资源包含1个PDF文件,压缩包整体大小1.27MB,完整收录芯片的引…

2026/10/11 18:51:05 阅读更多 →
SpringBoot+Vue秒杀管理系统:高并发防超卖与订单管理实战

SpringBoot+Vue秒杀管理系统:高并发防超卖与订单管理实战

秒杀系统是Java后端实战里绕不开的经典场景,这个基于SpringBootVue的管理系统恰好覆盖了秒杀业务从用户登录、商品列表、定时抢购、库存扣减到订单管理和后台维护的完整闭环,技术栈则是地道的JavaMySQLMyBatis,再配一套Vue前端。很多人看着“…

2026/10/11 18:51:05 阅读更多 →
5分钟搭建生产级文档网站:Blume从init到build的新手快速入门教程

5分钟搭建生产级文档网站:Blume从init到build的新手快速入门教程

【免费下载链接】blume The open-source docs framework for humans and agents. 项目地址: https://gitcode.com/gh_mirrors/blum/blume 点击查看 免费下载 Blume 是一个开源文档框架(docs framework),专为人类和 AI Agent 设计…

2026/10/11 18:51:05 阅读更多 →
Oracle EBS财务模块实战:GL、AP、CST与PAC成本核算避坑指南

Oracle EBS财务模块实战:GL、AP、CST与PAC成本核算避坑指南

简介:Oracle EBS财务模块学习资料,面向ERP初学者、财务信息化从业者及企业财务管理人员,帮助系统理解Oracle电子商务套件在财务管理领域的核心功能与实施思路。资料以docx文档形式呈现,压缩包内共1个文件,约32KB&#…

2026/10/11 18:51:05 阅读更多 →
SAP Data Services 连接 MySQL 失败排查:驱动、DSN 与 Job Server 实战指南

SAP Data Services 连接 MySQL 失败排查:驱动、DSN 与 Job Server 实战指南

简介:《SAP Data Services如何连接MySQL》是一份面向数据集成工程师、ETL开发及SAP BI实施人员的实操指南,重点解决在Business Objects Data Services中从零配置MySQL数据源的流程痛点。文档基于完整截图与步骤拆解,详细演示了新建data store…

2026/10/11 18:51:05 阅读更多 →
异或运算解算法题:只出现一次的数字的位运算原理与实现

异或运算解算法题:只出现一次的数字的位运算原理与实现

每次有人让我推荐值得反复琢磨的算法题,我几乎都会提到"只出现一次的数字"这道题。题目本身非常短:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次,找出那个只出现一次的元素&…

2026/10/11 18:50:05 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →