登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  文章 >  前端

GitHubCopilot快速生成HTML代码教程

时间:2026-03-29 13:08:35 328浏览 收藏

GitHub Copilot 并非万能的HTML生成器——它无法凭空创建完整的网页,而是依赖你手动搭建基础结构(如DOCTYPE、html、head、body等锚点)后,才可精准补全后续代码;理解这一局限,掌握“先搭骨架、再填血肉”的协作逻辑,才能真正释放Copilot在HTML开发中的高效潜能。

html怎么用github copilot提速_GitHub Copilot如何生成HTML模板

GitHub Copilot 能不能直接生成完整 HTML 页面

Copilot 本身不“理解”页面结构,它只是基于你已写的上下文(比如

)补全后续代码。它不会主动问你要不要加 viewport、要不要用 flex 布局,也不会校验语义是否合理——它只预测下一个 token。

所以别指望输入“写个登录页”就吐出可运行的 HTML+CSS+JS。它真正起效的场景是:你已经搭好骨架,它帮你补全重复部分或常见模式。

  • 你敲下

    ,Copilot 可能接着建议

  • 你写完
    ,它大概率自动补 这类高频字段
  • 但如果你只写
    就停住,它可能胡乱补一堆没闭合的标签或错位的属性

怎么让 Copilot 生成更靠谱的 HTML 模板

关键不是“让它多写”,而是“给它足够明确的锚点”。HTML 是强结构语言,Copilot 对缩进、换行、标签配对极其敏感。你写的前几行,决定了它后续所有补全质量。

  • 开头必须写全 ,否则它可能默认生成 XHTML 或老式 HTML4 结构
  • 紧接着写 </code> —— 这样它才知道你要的是现代中文页面</li> <li>在 <code><body></code> 里,先手写一个容器级 <code><main class="container"></code>,Copilot 才会顺着 class 名和语义往下推导内容区块</li> <li>避免空行或孤立标签:Copilot 在 <code><div></code> 后隔两行再按 Tab,大概率失焦,开始补无关代码</li> </ul><h3>常见翻车现场:Copilot 补出来的 HTML 为啥跑不了 </h3><p>不是语法错误,而是结构性陷阱。浏览器能解析,但行为完全不对——这类问题最难 debug。</p> <ul><li><code><button>提交</button></code> 被补成 <code><button type="submit">提交</button></code> 是好的;但补成 <code><button onclick="submit()>提交</button></code>(少了个 <code>"</code> 和 <code>/</code>)就是典型语法漏缺</li> <li>它喜欢把 <code><img src="" alt=""></code> 补成 <code><img src="logo.png" alt="logo"></code>,但如果你没写 <code>alt</code> 属性,它可能直接跳过——导致无障碍检测失败</li> <li>在表单中,它常把 <code><input></code> 和 <code><label></code> 分离,而不是用 <code>for/id</code> 关联,结果点击 label 不聚焦 input</li> <li>嵌套层级混乱:比如在 <code><ul></code> 里补出 <code><div></code>,而 HTML 规范只允许 <code><li></code> 作为直接子元素</li> </ul><h3>要不要用 Copilot 写 HTML?看这三点再决定 </h3><p>它不是替代你写 HTML 的工具,而是放大你已有 HTML 直觉的杠杆。用得顺的前提是你清楚每行代码的职责。</p> <ul><li>如果你还在查 <code><meta name="viewport"></code> 怎么写,Copilot 会把你带偏——它可能补出过时的 <code>initial-scale=1.0, maximum-scale=1.0</code>,而你根本看不出问题</li> <li>如果你常写管理后台,熟悉 <code><table></code> + <code><thead>/<tbody></code> 模式,Copilot 能省掉 70% 的样板标签闭合</li> <li>如果你要适配 Safari 旧版本,Copilot 默认补的 <code>display: flex</code> 可能没加 <code>-webkit-</code> 前缀——它不关心兼容性目标,只学训练数据里的高频写法</li> </ul><p>最易被忽略的一点:Copilot 对自定义元素(如 <code><my-card></code>)或 Web Component 的支持极弱。它没见过你的组件名,就不会补对应属性或 slot,这时候硬靠它,反而拖慢进度。</p><p>理论要掌握,实操不能落!以上关于《GitHubCopilot快速生成HTML代码教程》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!</p> </div> <div class="labsList"> </div> </div> <!-- 最新阅读 --> <div class="contBoxNor"> <div class="contTit"> <div class="tit">相关阅读</div> <a href="/articlelist.html" class="more">更多></a> </div> <ul class="latestReadList"> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  1年前  |   <a href="javascript:;" class="aLightGray" title="提升">提升</a> <a href="javascript:;" class="aLightGray" title="箭头函数">箭头函数</a> <a href="javascript:;" class="aLightGray" title="函数表达式">函数表达式</a> <a href="javascript:;" class="aLightGray" title="函数声明">函数声明</a> <a href="javascript:;" class="aLightGray" title="Function构造函数">Function构造函数</a> </div> <div class="tit lineOverflow"><a href="/article/207000.html" title="JavaScript函数定义及示例详解" class="aBlack">JavaScript函数定义及示例详解</a></div> <div class="opt"> <span><i class="view"></i>502</span> <span class="collectBtn user_collection" data-id="207000" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  2个月前  |   </div> <div class="tit lineOverflow"><a href="/article/619053.html" title="CSS变量简化按钮悬停效果技巧" class="aBlack">CSS变量简化按钮悬停效果技巧</a></div> <div class="opt"> <span><i class="view"></i>501</span> <span class="collectBtn user_collection" data-id="619053" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  2个月前  |   </div> <div class="tit lineOverflow"><a href="/article/618916.html" title="JavaScript符号类型详解与应用" class="aBlack">JavaScript符号类型详解与应用</a></div> <div class="opt"> <span><i class="view"></i>501</span> <span class="collectBtn user_collection" data-id="618916" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  2个月前  |   </div> <div class="tit lineOverflow"><a href="/article/612539.html" title="HTML剪贴板复制粘贴怎么用" class="aBlack">HTML剪贴板复制粘贴怎么用</a></div> <div class="opt"> <span><i class="view"></i>501</span> <span class="collectBtn user_collection" data-id="612539" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  2个月前  |   </div> <div class="tit lineOverflow"><a href="/article/611774.html" title="data-*属性详解:HTML数据存储与DOM操作技巧" class="aBlack">data-*属性详解:HTML数据存储与DOM操作技巧</a></div> <div class="opt"> <span><i class="view"></i>501</span> <span class="collectBtn user_collection" data-id="611774" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> </ul> </div> <!-- 最新阅读 --> <div class="contBoxNor"> <div class="contTit"> <div class="tit">最新阅读</div> <a href="/articlelist.html" class="more">更多></a> </div> <ul class="latestReadList"> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  4小时前  |   </div> <div class="tit lineOverflow"><a href="/article/621121.html" title="CSS @scope 怎么限制组件样式泄漏:嵌套范围、优先级与降级检查" class="aBlack">CSS @scope 怎么限制组件样式泄漏:嵌套范围、优先级与降级检查</a></div> <div class="opt"> <span><i class="view"></i>366</span> <span class="collectBtn user_collection" data-id="621121" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  22小时前  |   <a href="/articletag/243_new_0_1.html" class="aLightGray" title="前端">前端</a> · <a href="/articletag/4729_new_0_1.html" class="aLightGray" title="css">css</a> · <a href="/articletag/39796_new_0_1.html" class="aLightGray" title="表单">表单</a> · <a href="javascript:;" class="aLightGray" title="CSS">CSS</a> <a href="javascript:;" class="aLightGray" title="响应式布局">响应式布局</a> <a href="javascript:;" class="aLightGray" title="表单">表单</a> <a href="javascript:;" class="aLightGray" title="field-sizing">field-sizing</a> </div> <div class="tit lineOverflow"><a href="/article/621111.html" title="CSS field-sizing: content 怎么让输入框随内容变宽:最小宽度、最大宽度和降级验收" class="aBlack">CSS field-sizing: content 怎么让输入框随内容变宽:最小宽度、最大宽度和降级验收</a></div> <div class="opt"> <span><i class="view"></i>442</span> <span class="collectBtn user_collection" data-id="621111" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  1天前  |   <a href="/articletag/4701_new_0_1.html" class="aLightGray" title="javascript">javascript</a> · <a href="/articletag/39953_new_0_1.html" class="aLightGray" title="前端工程">前端工程</a> · <a href="/articletag/40054_new_0_1.html" class="aLightGray" title="浏览器API">浏览器API</a> · <a href="javascript:;" class="aLightGray" title="Web Locks API">Web Locks API</a> <a href="javascript:;" class="aLightGray" title="navigator.locks">navigator.locks</a> <a href="javascript:;" class="aLightGray" title="前端多标签页">前端多标签页</a> </div> <div class="tit lineOverflow"><a href="/article/621099.html" title="Web Locks API 怎么防止多标签页重复刷新:ifAvailable、超时与失联恢复" class="aBlack">Web Locks API 怎么防止多标签页重复刷新:ifAvailable、超时与失联恢复</a></div> <div class="opt"> <span><i class="view"></i>386</span> <span class="collectBtn user_collection" data-id="621099" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  1天前  |   </div> <div class="tit lineOverflow"><a href="/article/621083.html" title="SPA 导航失败怎么保留旧内容:Navigation API 的 navigateerror 与重试回退" class="aBlack">SPA 导航失败怎么保留旧内容:Navigation API 的 navigateerror 与重试回退</a></div> <div class="opt"> <span><i class="view"></i>308</span> <span class="collectBtn user_collection" data-id="621083" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  1天前  |   </div> <div class="tit lineOverflow"><a href="/article/621082.html" title="前端 SPA 导航怎么统一接管:Navigation API 的拦截、失败恢复与回退" class="aBlack">前端 SPA 导航怎么统一接管:Navigation API 的拦截、失败恢复与回退</a></div> <div class="opt"> <span><i class="view"></i>291</span> <span class="collectBtn user_collection" data-id="621082" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  1天前  |   <a href="/articletag/4729_new_0_1.html" class="aLightGray" title="css">css</a> · <a href="/articletag/5401_new_0_1.html" class="aLightGray" title="前端开发">前端开发</a> · <a href="/articletag/40634_new_0_1.html" class="aLightGray" title="无障碍设计">无障碍设计</a> · <a href="javascript:;" class="aLightGray" title="CSS">CSS</a> <a href="javascript:;" class="aLightGray" title="无障碍">无障碍</a> <a href="javascript:;" class="aLightGray" title="color-mix">color-mix</a> <a href="javascript:;" class="aLightGray" title="design token">design token</a> </div> <div class="tit lineOverflow"><a href="/article/621062.html" title="CSS 主题按钮怎么用 color-mix() 派生 hover 与浅底:对比度和 fallback 实战" class="aBlack">CSS 主题按钮怎么用 color-mix() 派生 hover 与浅底:对比度和 fallback 实战</a></div> <div class="opt"> <span><i class="view"></i>173</span> <span class="collectBtn user_collection" data-id="621062" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  1天前  |   <a href="/articletag/4729_new_0_1.html" class="aLightGray" title="css">css</a> · <a href="/articletag/5401_new_0_1.html" class="aLightGray" title="前端开发">前端开发</a> · <a href="/articletag/40634_new_0_1.html" class="aLightGray" title="无障碍设计">无障碍设计</a> · <a href="javascript:;" class="aLightGray" title="CSS">CSS</a> <a href="javascript:;" class="aLightGray" title="无障碍">无障碍</a> <a href="javascript:;" class="aLightGray" title="color-mix">color-mix</a> <a href="javascript:;" class="aLightGray" title="design token">design token</a> </div> <div class="tit lineOverflow"><a href="/article/621061.html" title="CSS color-mix() 做主题色派生:从 design token 到对比度验收" class="aBlack">CSS color-mix() 做主题色派生:从 design token 到对比度验收</a></div> <div class="opt"> <span><i class="view"></i>406</span> <span class="collectBtn user_collection" data-id="621061" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  2天前  |   </div> <div class="tit lineOverflow"><a href="/article/621033.html" title="中文标题总是断得难看?CSS text-wrap balance 的宽度约束与降级验收" class="aBlack">中文标题总是断得难看?CSS text-wrap balance 的宽度约束与降级验收</a></div> <div class="opt"> <span><i class="view"></i>330</span> <span class="collectBtn user_collection" data-id="621033" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  2天前  |   </div> <div class="tit lineOverflow"><a href="/article/621032.html" title="CSS text-wrap: balance 怎么让中文标题更稳:max-width、降级与可访问性" class="aBlack">CSS text-wrap: balance 怎么让中文标题更稳:max-width、降级与可访问性</a></div> <div class="opt"> <span><i class="view"></i>353</span> <span class="collectBtn user_collection" data-id="621032" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  2天前  |   </div> <div class="tit lineOverflow"><a href="/article/621031.html" title="CSS Anchor Positioning 怎么做浮层定位:position-try 回退、可访问性和旧浏览器降级" class="aBlack">CSS Anchor Positioning 怎么做浮层定位:position-try 回退、可访问性和旧浏览器降级</a></div> <div class="opt"> <span><i class="view"></i>349</span> <span class="collectBtn user_collection" data-id="621031" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  1星期前  |   <a href="/articletag/243_new_0_1.html" class="aLightGray" title="前端">前端</a> · <a href="/articletag/861_new_0_1.html" class="aLightGray" title="性能">性能</a> · <a href="/articletag/2436_new_0_1.html" class="aLightGray" title="异步任务">异步任务</a> · <a href="/articletag/40548_new_0_1.html" class="aLightGray" title="对象存储">对象存储</a> · <a href="/articletag/40552_new_0_1.html" class="aLightGray" title="文件导出">文件导出</a> · <a href="javascript:;" class="aLightGray" title="Excel">Excel</a> <a href="javascript:;" class="aLightGray" title="csv">csv</a> <a href="javascript:;" class="aLightGray" title="对象存储">对象存储</a> <a href="javascript:;" class="aLightGray" title="异步任务">异步任务</a> <a href="javascript:;" class="aLightGray" title="SSE">SSE</a> <a href="javascript:;" class="aLightGray" title="前端报表导出">前端报表导出</a> <a href="javascript:;" class="aLightGray" title="浏览器导出">浏览器导出</a> </div> <div class="tit lineOverflow"><a href="/article/620753.html" title="前端大报表导出怎么选:浏览器直出还是后端异步任务" class="aBlack">前端大报表导出怎么选:浏览器直出还是后端异步任务</a></div> <div class="opt"> <span><i class="view"></i>331</span> <span class="collectBtn user_collection" data-id="620753" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> <li> <div class="info"> <a href="/articlelist/19_new_0_1.html" class="aLightGray" title="文章">文章</a> · <a href="/articlelist/88_new_0_1.html" class="aLightGray" title="前端">前端</a>   |  1星期前  |   </div> <div class="tit lineOverflow"><a href="/article/620752.html" title="前端 WebSocket 断线重连为什么会打爆接口:指数退避、抖动与页面恢复" class="aBlack">前端 WebSocket 断线重连为什么会打爆接口:指数退避、抖动与页面恢复</a></div> <div class="opt"> <span><i class="view"></i>366</span> <span class="collectBtn user_collection" data-id="620752" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </div> </li> </ul> </div> <!-- 课程推荐 --> <div class="contBoxNor"> <div class="contTit"> <div class="tit">课程推荐</div> <a href="/courselist.html" class="more">更多></a> </div> <ul class="classRecomList"> <li> <a href="/course/9.html" title="前端进阶之JavaScript设计模式" class="img_box"> <img src="/uploads/20221222/52fd0f23a454c71029c2c72d206ed815.jpg" onerror="this.onerror='';this.src='/assets/images/moren/morentu.png'" alt="前端进阶之JavaScript设计模式"> </a> <dl> <dt class="lineOverflow"> 前端进阶之JavaScript设计模式 </dt> <dd class="cont1 lineOverflow">设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。</dd> <dd class="cont2"> <a href="/course/9.html" title="前端进阶之JavaScript设计模式" class="toStudy">立即学习</a> <span>543次学习</span> </dd> </dl> </li> <li> <a href="/course/2.html" title="GO语言核心编程课程" class="img_box"> <img src="/uploads/20221221/634ad7404159bfefc6a54a564d437b5f.png" onerror="this.onerror='';this.src='/assets/images/moren/morentu.png'" alt="GO语言核心编程课程"> </a> <dl> <dt class="lineOverflow"> GO语言核心编程课程 </dt> <dd class="cont1 lineOverflow">本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。</dd> <dd class="cont2"> <a href="/course/2.html" title="GO语言核心编程课程" class="toStudy">立即学习</a> <span>516次学习</span> </dd> </dl> </li> <li> <a href="/course/74.html" title="简单聊聊mysql8与网络通信" class="img_box"> <img src="/uploads/20240103/bad35fe14edbd214bee16f88343ac57c.png" onerror="this.onerror='';this.src='/assets/images/moren/morentu.png'" alt="简单聊聊mysql8与网络通信"> </a> <dl> <dt class="lineOverflow"> 简单聊聊mysql8与网络通信 </dt> <dd class="cont1 lineOverflow">如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让</dd> <dd class="cont2"> <a href="/course/74.html" title="简单聊聊mysql8与网络通信" class="toStudy">立即学习</a> <span>500次学习</span> </dd> </dl> </li> <li> <a href="/course/57.html" title="JavaScript正则表达式基础与实战" class="img_box"> <img src="/uploads/20221226/bbe4083bb3cb0dd135fb02c31c3785fb.jpg" onerror="this.onerror='';this.src='/assets/images/moren/morentu.png'" alt="JavaScript正则表达式基础与实战"> </a> <dl> <dt class="lineOverflow"> JavaScript正则表达式基础与实战 </dt> <dd class="cont1 lineOverflow">在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。</dd> <dd class="cont2"> <a href="/course/57.html" title="JavaScript正则表达式基础与实战" class="toStudy">立即学习</a> <span>487次学习</span> </dd> </dl> </li> <li> <a href="/course/28.html" title="从零制作响应式网站—Grid布局" class="img_box"> <img src="/uploads/20221223/ac110f88206daeab6c0cf38ebf5fe9ed.jpg" onerror="this.onerror='';this.src='/assets/images/moren/morentu.png'" alt="从零制作响应式网站—Grid布局"> </a> <dl> <dt class="lineOverflow"> 从零制作响应式网站—Grid布局 </dt> <dd class="cont1 lineOverflow">本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。</dd> <dd class="cont2"> <a href="/course/28.html" title="从零制作响应式网站—Grid布局" class="toStudy">立即学习</a> <span>485次学习</span> </dd> </dl> </li> </ul> </div> </div> <!-- footer --> <div class="footer"> <ul> <li ><a href="/" class="aLightGray"><em class="navIcon navIconHome"></em><span>首页</span></a></li> <li class="curr"><a href="/articlelist.html" class="aLightGray"><em class="navIcon navIconRead"></em><span>阅读</span></a></li> <li ><a href="/courselist.html" class="aLightGray"><em class="navIcon navIconCourse"></em><span>课程</span></a></li> <li ><a href="/ai.html" class="aLightGray"><em class="navIcon navIconAi"></em><span>AI助手</span></a></li> <li ><a href="/user.html" class="aLightGray"><em class="navIcon navIconUser"></em><span>我的</span></a></li> </ul> </div> <script src="/assets/js/frontend/common.js" defer></script> <script src="/assets/js/juejin-theme.js?v=20260613b" defer></script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?e34c3e8ab31ba35d7e1c48ea8d77315f"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>