当前位置:首页 > 文章列表 > 文章 > 前端 > SVG与Canvas图形渲染对比分析

SVG与Canvas图形渲染对比分析

2026-01-03 23:35:42 0浏览 收藏
热门推荐
漫画APP
动画内容聚合,热门资源快捷查看
立即下载

今天golang学习网给大家带来了《SVG与Canvas图形渲染区别解析》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

SVG是基于XML的矢量图形格式,JavaScript可直接操作其DOM节点;Canvas是位图绘图API,依赖JS逐帧绘制像素。SVG为“可编程的文档”,Canvas为“可编程的画布”。

javascript SVG如何操作_它与Canvas在图形渲染上有何不同?

SVG 是基于 XML 的矢量图形格式,JavaScript 可以直接操作它的 DOM 节点;Canvas 是位图绘图 API,依赖 JavaScript 逐帧绘制像素。两者本质不同:SVG 是“可编程的文档”,Canvas 是“可编程的画布”。

SVG 的 JavaScript 操作方式

SVG 元素是标准 DOM 节点,能用 document.getElementById、querySelector 获取,也能用 setAttribute、classList 或直接赋值属性(如 el.cx.baseVal.value = 100)修改图形状态。动画可用 CSS transition、SMIL(已逐步弃用)或 requestAnimationFrame 驱动属性变化。

  • 创建元素:document.createElementNS('http://www.w3.org/2000/svg', 'circle')
  • 添加到页面:svgEl.appendChild(circle)
  • 响应事件:circle.addEventListener('click', () => {...}) —— 每个图形都可独立绑定事件
  • 缩放/平移不模糊:浏览器自动重绘矢量路径,适合图标、图表、交互式地图等需要高保真和可访问性的场景

Canvas 的 JavaScript 操作方式

Canvas 提供一个渲染上下文(getContext('2d') 或 webgl),所有绘图都通过调用上下文方法完成,如 ctx.fillRect()、ctx.beginPath()、ctx.stroke()。它不保留图形对象,只保存最终像素结果。

  • 无法直接获取某个“圆形”元素 —— 绘制后即消失,需自行维护图形数据结构
  • 事件需手动计算坐标(如判断点击是否在某图形内),没有原生事件委托
  • 适合高频重绘场景:游戏、粒子动画、实时图像处理、数据可视化中百万级点渲染
  • 导出为 PNG/JPEG 简单:canvas.toDataURL('image/png')

核心差异对比

渲染模型:SVG 是保留模式(Retained Mode),浏览器记住每个图形及其属性;Canvas 是即时模式(Immediate Mode),绘图命令执行完就丢弃上下文状态。

性能取舍:SVG 节点多(如上万条路径)时 DOM 开销大、重排重绘慢;Canvas 在节点极多但结构简单时更高效,但失去矢量优势和语义化能力。

可访问性与 SEO:SVG 支持 </code>、<code><desc></code>、ARIA 属性,能被屏幕阅读器识别;Canvas 默认不可读,需额外用 <code>aria-label</code> 或外挂描述。</p> <p><strong>样式控制</strong>:SVG 可用 CSS 控制颜色、阴影、过渡;Canvas 样式全靠 JS 设置上下文属性,CSS 仅能控制 canvas 元素本身(如边框、大小)。</p> <h3>如何选择</h3> <p>选 SVG 当你需要:图形有交互(如点击某省份高亮)、要打印或缩放到任意尺寸、内容需被搜索引擎索引、团队熟悉 HTML/CSS 开发流程。</p> <p>选 Canvas 当你需要:每秒重绘几十次(如动画/游戏)、处理图像像素(滤镜、合成)、绘制海量散点且不强调单点交互、或集成 WebGL 进行 3D 渲染。</p> <p>两者也能协作:例如用 SVG 做 UI 图标和文字标注,Canvas 负责底层动态图形渲染,再用 <code>canvas</code> 作为 <code><foreignObject></code> 的容器(较少见)或分层叠加实现混合效果。</p><p>今天关于《SVG与Canvas图形渲染对比分析》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!</p> </div> <div class="labsList"> </div> <div class="cateBox"> <div class="cateItem"> <a href="/article/444841.html" title="HWB颜色模式是什么?CSS新语法解析" class="img_box"> <img src="/uploads/20260103/17674544836959371394596.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="HWB颜色模式是什么?CSS新语法解析">HWB颜色模式是什么?CSS新语法解析 </a> <dl> <dt class="lineOverflow"><a href="/article/444841.html" title="HWB颜色模式是什么?CSS新语法解析" class="aBlack">上一篇<i></i></a></dt> <dd class="lineTwoOverflow">HWB颜色模式是什么?CSS新语法解析</dd> </dl> </div> <div class="cateItem"> <a href="/article/444843.html" title="魔力战队卡牌搭配技巧分享" class="img_box"> <img src="/uploads/20260103/17674546056959378d48341.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="魔力战队卡牌搭配技巧分享"> </a> <dl> <dt class="lineOverflow"><a href="/article/444843.html" class="aBlack" title="魔力战队卡牌搭配技巧分享">下一篇<i></i></a></dt> <dd class="lineTwoOverflow">魔力战队卡牌搭配技巧分享</dd> </dl> </div> </div> </div> </div> <div class="leftContBox pt0"> <div class="pdl20"> <div class="contTit"> <a href="/articlelist.html" class="more" title="查看更多">查看更多<i class="iconfont"></i></a> <div class="tit">最新文章</div> </div> </div> <ul class="newArticleList"> <li> <div class="contBox"> <a href="/article/632150.html" class="img_box" title="ARIA live 怎样播报异步状态变化"> <img src="/uploads/20261015/1792017626-2e5731e907-406472b09a-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="ARIA live 怎样播报异步状态变化"> </a> <dl> <dd class="cont1"> <span> <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天前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/632150.html" class="aBlack" target="_blank" title="ARIA live 怎样播报异步状态变化">ARIA live 怎样播报异步状态变化</a> </dt> <dd class="cont2"> <span><i class="view"></i>261浏览</span> <span class="collectBtn user_collection" data-id="632150" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/632149.html" class="img_box" title="HTML inert 怎样暂时禁用背景区域交互"> <img src="/uploads/20261015/1792017580-3fc69fb2e1-ea33366d93-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="HTML inert 怎样暂时禁用背景区域交互"> </a> <dl> <dd class="cont1"> <span> <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/240_new_0_1.html" class="aLightGray" title="html">html</a> · <a href="javascript:;" class="aLightGray" title="可访问性">可访问性</a> <a href="javascript:;" class="aLightGray" title="焦点管理">焦点管理</a> <a href="javascript:;" class="aLightGray" title="HTML inert">HTML inert</a> <a href="javascript:;" class="aLightGray" title="模态框背景禁用">模态框背景禁用</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/632149.html" class="aBlack" target="_blank" title="HTML inert 怎样暂时禁用背景区域交互">HTML inert 怎样暂时禁用背景区域交互</a> </dt> <dd class="cont2"> <span><i class="view"></i>153浏览</span> <span class="collectBtn user_collection" data-id="632149" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/632148.html" class="img_box" title="CSS field-sizing 怎样让文本框高度随内容变化"> <img src="/uploads/20261015/1792017059-11dea2649b-92eb95b195-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="CSS field-sizing 怎样让文本框高度随内容变化"> </a> <dl> <dd class="cont1"> <span> <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/39796_new_0_1.html" class="aLightGray" title="表单">表单</a> · <a href="javascript:;" class="aLightGray" title="表单布局">表单布局</a> <a href="javascript:;" class="aLightGray" title="CSS field-sizing">CSS field-sizing</a> <a href="javascript:;" class="aLightGray" title="文本框自适应">文本框自适应</a> <a href="javascript:;" class="aLightGray" title="textarea 自动高度">textarea 自动高度</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/632148.html" class="aBlack" target="_blank" title="CSS field-sizing 怎样让文本框高度随内容变化">CSS field-sizing 怎样让文本框高度随内容变化</a> </dt> <dd class="cont2"> <span><i class="view"></i>328浏览</span> <span class="collectBtn user_collection" data-id="632148" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/632147.html" class="img_box" title="CSS 容器查询怎样按组件宽度切换布局"> <img src="/uploads/20261015/1792016870-98e1cbf312-68ff73b5b7-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="CSS 容器查询怎样按组件宽度切换布局"> </a> <dl> <dd class="cont1"> <span> <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> · </span> </dd> <dt class="lineOverflow"> <a href="/article/632147.html" class="aBlack" target="_blank" title="CSS 容器查询怎样按组件宽度切换布局">CSS 容器查询怎样按组件宽度切换布局</a> </dt> <dd class="cont2"> <span><i class="view"></i>330浏览</span> <span class="collectBtn user_collection" data-id="632147" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/632146.html" class="img_box" title="Service Worker 更新怎样控制接管时机"> <img src="/uploads/20261015/1792016782-9dc6fe17b8-44445c2a89-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="Service Worker 更新怎样控制接管时机"> </a> <dl> <dd class="cont1"> <span> <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天前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/632146.html" class="aBlack" target="_blank" title="Service Worker 更新怎样控制接管时机">Service Worker 更新怎样控制接管时机</a> </dt> <dd class="cont2"> <span><i class="view"></i>486浏览</span> <span class="collectBtn user_collection" data-id="632146" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/632145.html" class="img_box" title="Cache API 怎样用完整请求区分缓存条目"> <img src="/uploads/20261015/1792016548-b1ab5620cc-ee9b512ca6-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="Cache API 怎样用完整请求区分缓存条目"> </a> <dl> <dd class="cont1"> <span> <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/4701_new_0_1.html" class="aLightGray" title="javascript">javascript</a> · <a href="javascript:;" class="aLightGray" title="request">request</a> <a href="javascript:;" class="aLightGray" title="Cache API">Cache API</a> <a href="javascript:;" class="aLightGray" title="Cache.match">Cache.match</a> <a href="javascript:;" class="aLightGray" title="Vary">Vary</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/632145.html" class="aBlack" target="_blank" title="Cache API 怎样用完整请求区分缓存条目">Cache API 怎样用完整请求区分缓存条目</a> </dt> <dd class="cont2"> <span><i class="view"></i>432浏览</span> <span class="collectBtn user_collection" data-id="632145" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/632144.html" class="img_box" title="IndexedDB 数据库升级怎样处理版本变更"> <img src="/uploads/20261015/1792016486-36316b1235-651f971b3f-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="IndexedDB 数据库升级怎样处理版本变更"> </a> <dl> <dd class="cont1"> <span> <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天前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/632144.html" class="aBlack" target="_blank" title="IndexedDB 数据库升级怎样处理版本变更">IndexedDB 数据库升级怎样处理版本变更</a> </dt> <dd class="cont2"> <span><i class="view"></i>483浏览</span> <span class="collectBtn user_collection" data-id="632144" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/632143.html" class="img_box" title="Web Worker 怎样转移 ArrayBuffer 避免复制"> <img src="/uploads/20261015/1792016446-b2f57447c2-cfb8a10ade-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="Web Worker 怎样转移 ArrayBuffer 避免复制"> </a> <dl> <dd class="cont1"> <span> <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天前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/632143.html" class="aBlack" target="_blank" title="Web Worker 怎样转移 ArrayBuffer 避免复制">Web Worker 怎样转移 ArrayBuffer 避免复制</a> </dt> <dd class="cont2"> <span><i class="view"></i>408浏览</span> <span class="collectBtn user_collection" data-id="632143" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/632142.html" class="img_box" title="ReadableStream 取消后怎样释放请求"> <img src="/uploads/20261015/1792016221-6b4558bc7d-bec292409c-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="ReadableStream 取消后怎样释放请求"> </a> <dl> <dd class="cont1"> <span> <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/4701_new_0_1.html" class="aLightGray" title="javascript">javascript</a> · <a href="javascript:;" class="aLightGray" title="AbortController">AbortController</a> <a href="javascript:;" class="aLightGray" title="ReadableStream">ReadableStream</a> <a href="javascript:;" class="aLightGray" title="Streams API">Streams API</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/632142.html" class="aBlack" target="_blank" title="ReadableStream 取消后怎样释放请求">ReadableStream 取消后怎样释放请求</a> </dt> <dd class="cont2"> <span><i class="view"></i>203浏览</span> <span class="collectBtn user_collection" data-id="632142" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/632141.html" class="img_box" title="ReadableStream 怎样用 TransformStream 转换数据"> <img src="/uploads/20261015/1792016078-3d0f4d59e4-4065766987-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="ReadableStream 怎样用 TransformStream 转换数据"> </a> <dl> <dd class="cont1"> <span> <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="javascript:;" class="aLightGray" title="ReadableStream">ReadableStream</a> <a href="javascript:;" class="aLightGray" title="流式响应">流式响应</a> <a href="javascript:;" class="aLightGray" title="TransformStream">TransformStream</a> <a href="javascript:;" class="aLightGray" title="pipeThrough">pipeThrough</a> <a href="javascript:;" class="aLightGray" title="Streams API">Streams API</a> </span> </dd> <dt class="lineOverflow"> <a href="/article/632141.html" class="aBlack" target="_blank" title="ReadableStream 怎样用 TransformStream 转换数据">ReadableStream 怎样用 TransformStream 转换数据</a> </dt> <dd class="cont2"> <span><i class="view"></i>151浏览</span> <span class="collectBtn user_collection" data-id="632141" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/632140.html" class="img_box" title="Fetch 怎样用 AbortSignal.timeout 设置请求超时"> <img src="/uploads/20261015/1792016059-fbeaedbb6e-2c18e449bb-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="Fetch 怎样用 AbortSignal.timeout 设置请求超时"> </a> <dl> <dd class="cont1"> <span> <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天前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/632140.html" class="aBlack" target="_blank" title="Fetch 怎样用 AbortSignal.timeout 设置请求超时">Fetch 怎样用 AbortSignal.timeout 设置请求超时</a> </dt> <dd class="cont2"> <span><i class="view"></i>166浏览</span> <span class="collectBtn user_collection" data-id="632140" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> <li> <div class="contBox"> <a href="/article/632139.html" class="img_box" title="Fetch keepalive 适合发送哪些小请求"> <img src="/uploads/20261015/1792015931-f462a88ae1-5f6d0f9c16-cover-640.webp" onerror="this.src='/assets/images/moren/morentu.png'" alt="Fetch keepalive 适合发送哪些小请求"> </a> <dl> <dd class="cont1"> <span> <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天前  |   </span> </dd> <dt class="lineOverflow"> <a href="/article/632139.html" class="aBlack" target="_blank" title="Fetch keepalive 适合发送哪些小请求">Fetch keepalive 适合发送哪些小请求</a> </dt> <dd class="cont2"> <span><i class="view"></i>397浏览</span> <span class="collectBtn user_collection" data-id="632139" data-type="article" title="收藏"><i class="collect"></i>收藏</span> </dd> </dl> </div> </li> </ul> </div> </div> <div class="mainRight"> <!-- 右侧广告位banner --> <div class="rightContBox" style="margin-top: 0px;"> <div class="rightTit"> <a href="/courselist.html" class="more" title="查看更多">查看更多<i class="iconfont"></i></a> <div class="tit lineOverflow">课程推荐</div> </div> <ul class="lessonRecomRList"> <li> <a href="/course/9.html" class="img_box" target="_blank" title="前端进阶之JavaScript设计模式"> <img src="/uploads/20221222/52fd0f23a454c71029c2c72d206ed815.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="前端进阶之JavaScript设计模式"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/9.html" target="_blank" class="aBlack" title="前端进阶之JavaScript设计模式">前端进阶之JavaScript设计模式</a></dt> <dd class="cont1 lineTwoOverflow"> 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。 </dd> <dd class="cont2">543次学习</dd> </dl> </li> <li> <a href="/course/2.html" class="img_box" target="_blank" title="GO语言核心编程课程"> <img src="/uploads/20221221/634ad7404159bfefc6a54a564d437b5f.png" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="GO语言核心编程课程"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/2.html" target="_blank" class="aBlack" title="GO语言核心编程课程">GO语言核心编程课程</a></dt> <dd class="cont1 lineTwoOverflow"> 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。 </dd> <dd class="cont2">516次学习</dd> </dl> </li> <li> <a href="/course/74.html" class="img_box" target="_blank" title="简单聊聊mysql8与网络通信"> <img src="/uploads/20240103/bad35fe14edbd214bee16f88343ac57c.png" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="简单聊聊mysql8与网络通信"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/74.html" target="_blank" class="aBlack" title="简单聊聊mysql8与网络通信">简单聊聊mysql8与网络通信</a></dt> <dd class="cont1 lineTwoOverflow"> 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让 </dd> <dd class="cont2">500次学习</dd> </dl> </li> <li> <a href="/course/57.html" class="img_box" target="_blank" title="JavaScript正则表达式基础与实战"> <img src="/uploads/20221226/bbe4083bb3cb0dd135fb02c31c3785fb.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="JavaScript正则表达式基础与实战"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/57.html" target="_blank" class="aBlack" title="JavaScript正则表达式基础与实战">JavaScript正则表达式基础与实战</a></dt> <dd class="cont1 lineTwoOverflow"> 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。 </dd> <dd class="cont2">487次学习</dd> </dl> </li> <li> <a href="/course/28.html" class="img_box" target="_blank" title="从零制作响应式网站—Grid布局"> <img src="/uploads/20221223/ac110f88206daeab6c0cf38ebf5fe9ed.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="从零制作响应式网站—Grid布局"> </a> <dl> <dt class="lineTwoOverflow"><a href="/course/28.html" target="_blank" class="aBlack" title="从零制作响应式网站—Grid布局">从零制作响应式网站—Grid布局</a></dt> <dd class="cont1 lineTwoOverflow"> 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。 </dd> <dd class="cont2">485次学习</dd> </dl> </li> </ul> </div> <div class="rightContBox"> <div class="rightTit"> <a href="/ai.html" class="more" title="查看更多">查看更多<i class="iconfont"></i></a> <div class="tit lineOverflow">AI推荐</div> </div> <ul class="lessonRecomRList"> <li> <a href="/ai/13900.html" target="_blank" title="PubMedQA数据集详解:生物医学问答基准、功能与应用指南" class="img_box"> <img src="/uploads/20260908/6a9f83280940e7.65575695.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="PubMedQA数据集详解:生物医学问答基准、功能与应用指南" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13900.html" class="aBlack" target="_blank" title="PubMedQA">PubMedQA</a></dt> <dd class="cont1 lineTwoOverflow"> 深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。 </dd> <dd class="cont2">497次使用</dd> </dl> </li> <li> <a href="/ai/13899.html" target="_blank" title="H2O EvalGPT:开源LLM大模型评估与排行榜工具" class="img_box"> <img src="/uploads/20260908/17887986376a9ee6adaf3f5.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="H2O EvalGPT:开源LLM大模型评估与排行榜工具" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13899.html" class="aBlack" target="_blank" title="H2O EvalGPT">H2O EvalGPT</a></dt> <dd class="cont1 lineTwoOverflow"> H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。 </dd> <dd class="cont2">552次使用</dd> </dl> </li> <li> <a href="/ai/13898.html" target="_blank" title="LMArena是什么?伯克利AI模型评估平台使用指南与功能解析" class="img_box"> <img src="/uploads/20260908/6a9f862dbcfec7.27385604.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="LMArena是什么?伯克利AI模型评估平台使用指南与功能解析" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13898.html" class="aBlack" target="_blank" title="LMArena">LMArena</a></dt> <dd class="cont1 lineTwoOverflow"> LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。 </dd> <dd class="cont2">578次使用</dd> </dl> </li> <li> <a href="/ai/13897.html" target="_blank" title="斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解" class="img_box"> <img src="/uploads/20260908/6a9f86b31ed789.06773114.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13897.html" class="aBlack" target="_blank" title="HELM">HELM</a></dt> <dd class="cont1 lineTwoOverflow"> 深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。 </dd> <dd class="cont2">532次使用</dd> </dl> </li> <li> <a href="/ai/13896.html" target="_blank" title="MMBench详解:多模态大模型基准测试、功能特点与使用指南" class="img_box"> <img src="/uploads/20260908/6a9f86d3eed3e7.18564236.jpg" onerror="this.onerror='',this.src='/assets/images/moren/morentu.png'" alt="MMBench详解:多模态大模型基准测试、功能特点与使用指南" style="object-fit:cover;width:100%;height:100%;"> </a> <dl> <dt class="lineTwoOverflow"><a href="/ai/13896.html" class="aBlack" target="_blank" title="MMBench">MMBench</a></dt> <dd class="cont1 lineTwoOverflow"> MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。 </dd> <dd class="cont2">343次使用</dd> </dl> </li> </ul> </div> <!-- 相关文章 --> <div class="rightContBox"> <div class="rightTit"> <a href="/articlelist.html" class="more" title="查看更多">查看更多<i class="iconfont"></i></a> <div class="tit lineOverflow">相关文章</div> </div> <ul class="aboutArticleRList"> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/207000.html" class="aBlack" title="JavaScript函数定义及示例详解">JavaScript函数定义及示例详解</a></dt> <dd> <span class="left">2025-05-11</span> <span class="right">502浏览</span> </dd> </dl> </li> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/621422.html" class="aBlack" title="智能体安全引领产业升级——国内AI安全产品市场深度分析">智能体安全引领产业升级——国内AI安全产品市场深度分析</a></dt> <dd> <span class="left">2026-08-21</span> <span class="right">501浏览</span> </dd> </dl> </li> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/619053.html" class="aBlack" title="CSS变量简化按钮悬停效果技巧">CSS变量简化按钮悬停效果技巧</a></dt> <dd> <span class="left">2026-05-31</span> <span class="right">501浏览</span> </dd> </dl> </li> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/618916.html" class="aBlack" title="JavaScript符号类型详解与应用">JavaScript符号类型详解与应用</a></dt> <dd> <span class="left">2026-05-31</span> <span class="right">501浏览</span> </dd> </dl> </li> <li> <dl> <dt class="lineTwoOverflow"><a href="/article/612539.html" class="aBlack" title="HTML剪贴板复制粘贴怎么用">HTML剪贴板复制粘贴怎么用</a></dt> <dd> <span class="left">2026-05-26</span> <span class="right">501浏览</span> </dd> </dl> </li> </ul> </div> </div> </div> <script src="/assets/js/frontend/common.js"></script> </body> </html>