使用+可避免重复代码,但需将置于文档顶部(如开头),且不兼容ie11以下版本,须fallback为或polyfill;颜色统一用fill="currentcolor"配合外部color控制。

SVG内联图标怎么避免重复代码又保持兼容性
直接把<svg></svg>写进HTML里最简单,但多个页面或多次使用同一图标时会重复渲染、增大HTML体积。用<symbol></symbol> + <use></use>是标准解法,但得注意几个硬约束:
-
<symbol></symbol>必须放在文档可及范围的顶部(比如开头),不能藏在<template></template>或<div style="display:none">里——它得被解析为模板,否则<code><use></use>找不到ID -
<use href="#icon-home"></use>在IE11及更老版本里完全不工作,没polyfill就只能fallback:用<img src="icons/home.svg" alt="首页">或JS动态替换 -
<use></use>不继承父级fill,想统一控制颜色得写fill="currentColor",再靠外部color或CSS变量驱动 -
viewBox写在<symbol></symbol>上就够了,<use></use>里不用重复,否则可能覆盖缩放逻辑 - 本地双击打开
index.html走的是file://协议,此时src="/icons/search.svg"的/指向你电脑C盘根目录,不是项目根目录;必须用HTTP服务预览(如VS Code Live Server、npx serve) - 路径一律用正斜杠
/,别用Windows反斜杠\;Linux服务器区分大小写,Search.svg和search.svg是两个文件 - 相对路径以
index.html所在位置为起点:src="icons/search.svg"表示同目录下icons/子文件夹;src="../assets/icons/search.svg"表示向上一级再进assets/icons/ - Network面板里看请求URL,如果出现
http://localhost:5173/icons/search.svg但状态码是404,说明路径写错或文件没部署过去 - 基础兼容用
<link rel="icon" href="/favicon.ico" type="image/x-icon">,.ico格式支持所有浏览器,包括老IE - 现代项目推荐加一行
<link rel="icon" href="/favicon.svg" type="image/svg+xml">,Chrome 98+、Firefox 89+支持,SVG图标可缩放无损,但Safari暂不支持SVG favicon - Apple设备主屏图标必须用
<link rel="apple-touch-icon" href="/apple-touch-icon.png">,尺寸建议180×180,PNG格式,不能带透明通道(iOS会自动加圆角和阴影) - 所有
href路径都用绝对路径(以/开头),因为favicon是全局资源,跟当前HTML文件位置无关;但确保构建后这些文件真出现在产物根目录下 -
<img>是语义化内容元素,必须带alt,但装饰图写alt=""还得配role="presentation",否则辅助技术可能误读 -
background-image路径相对于CSS文件位置,不是HTML,方便组件化管理;配合background-size: contain和background-repeat: no-repeat能精准控制 - SVG作为
background-image时,可以用url("data:image/svg+xml,%3Csvg...%3E")内联,彻底消灭HTTP请求,但编码需URL转义,复杂图标建议单独文件 - 如果图标要响应鼠标交互(比如hover变色),
<img>得额外套<span></span>或JS监听,而CSS背景可直接用:hover改background-image或filter
img标签引用图标时src路径总404怎么办
图标文件明明存在,<img src="icons/search.svg" alt="搜索">却显示空白——八成是路径基准点错了。关键不是“文件在哪”,而是“从哪出发找”:
favicon和内联图标该用什么格式和路径
favicon不是随便扔个PNG就行,浏览器默认只认根目录favicon.ico,其他格式必须显式声明,且不同设备对格式支持差异大:
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
小图标该用img还是background-image
纯装饰性小图标(比如按钮旁的放大镜、列表项前的箭头)优先用CSSbackground-image,而不是<img>:
真正容易被忽略的是:SVG内联图标里<path></path>的d属性一旦有空格或换行,Base64编码或URL转义就会出错,复制时务必检查是否有多余空白。










