SVG Sprite中<title>应放在精灵文件还是导入位置?
SVG Sprite 中
<title> 标签的位置选择问题 问题1:<title> 放在导入位置还是精灵文件中更合适?
核心看图标语义的通用性:
- 如果是通用型图标(比如「电话」图标在所有场景都指向同一语义),把
<title>放在精灵的<symbol>里更高效,避免重复编写相同内容。 - 如果是场景特定型图标(同一个图标在不同页面/模块有不同语义,比如「电话」在首页是「联系客服」,在个人中心是「拨打绑定号码」),把
<title>放在导入的<svg>标签内更合适,能适配场景精准语义。
问题2:若精灵中的<title>语义适配所有使用场景,是否可保留在精灵中?
完全可以。这种情况下把<title>放在<symbol>里是最优解——既保证了语义一致性,又减少重复代码,所有引用该图标的地方都会自动继承这个标题。
问题3:若精灵中已有<title>,在导入位置添加更精准的<title>是否可行?
可行。当导入位置的<svg>内添加<title>时,屏幕阅读器会优先读取这个场景化标题,同时精灵里的通用标题可作为 fallback(当某些场景忘记添加特定标题时生效),不会出现语义混乱的情况。
导入位置代码示例:
<svg> <title>联系客服</title> <!-- 场景特定标题 --> <use href="../resources/icons/sprite-all.svg#call"></use> </svg>
SVG精灵文件代码示例:
<svg width="0" height="0"> <symbol id="call"> <title>拨打联系电话</title> <!-- 通用标题 --> <path d="M39.977 (...other values)"></path> </symbol> </svg>
内容的提问来源于stack exchange,提问作者user8620575
相关产品推荐
相关产品推荐

