记录一个显示svg图标遇到的问题及解决方案

我们写了一个h5活动页面放在微信公众号上,该页面有一个 svg 的小图标,我一开始直接使用了 img 标签进行显示,结果在 iphone 设备上,该图标渲染出来有一些模糊。经过查询资料才知道,在 iphone 设备上,img 标签引入的 svg 会被解析成普通的 png 图片,分辨率还很低。

于是我使用了 object 标签来显示图标,这下是清晰了,但是我为 object 或者他的父级 div 设置点击事件却没了反应,经过一番尝试,有了以下解决方案:

html 复制代码
<div class="icon">
  <object type="image/svg+xml" data="xxx"></object>
  <div class="click-layer" @click="alert('hello')"></div>
</div>

<style>
.icon {
  position: relative;
}
.icon .click-layer {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: transparent;
}
</style>

就是给图标加一个透明的层盖住,然后给这个层加点击事件,完美!

相关推荐
keyborad pianist19 小时前
Web开发 Day1
开发语言·前端·css·vue.js·前端框架
Never_Satisfied20 小时前
在HTML & CSS中,可能导致父元素无法根据子元素的尺寸自动调整大小的情况
前端·css·html
We་ct20 小时前
LeetCode 101. 对称二叉树:两种解法(递归+迭代)详解
前端·算法·leetcode·链表·typescript
码云数智-大飞20 小时前
微前端架构落地实战:qiankun vs Module Federation 2026 深度对比与选型指南
前端·架构
IT枫斗者20 小时前
MyBatis批量插入性能优化:从5分钟到3秒的工程化实践
前端·vue.js·mysql·mongodb·性能优化·mybatis
前端 贾公子20 小时前
深入理解 Vue3 的 v-model 及自定义指令的实现原理(中)
前端·html
Never_Satisfied21 小时前
在HTML & CSS中,img标签固定宽度时,img和图片保持比例缩放
前端·css·html
Cache技术分享21 小时前
327. Java Stream API - 实现 joining() 收集器:从简单到进阶
前端·后端
人工智能先锋21 小时前
从零部署你的24小时AI管家:OpenClaw完整实战指南(附踩坑记录)
前端·github
不是株21 小时前
苍穹外卖(前端)
前端