当前位置: 首页 > web >正文

el-button传入icon用法可能会出现的问题

el-button传入icon用法可能会出现的问题

在项目中,使用 el-buttonicon 属性渲染按钮图标时,大分辨率下显示正常,但切换到小分辨率后,图标尺寸异常。

异常原因

初次渲染时,el-button 通过 icon="el-icon-search" 挂载 <svg> 元素,尺寸和样式跟随父级字体大小(通常为 14px),显示正常。

切换到小分辨率后,父级容器(如 flex、grid 布局)被压缩,el-button 重新渲染,<svg> 元素被重新挂载,内部 font-size 计算为较小值(8.75px),SVG 的 width="1em" 随之缩放,导致渲染出 8.75x8.75 的图标。

尝试修复:使用 v-show 替代 v-if

为避免重新渲染,将显隐逻辑从 v-if 改为 v-show

<el-button v-show="showButton" icon="el-icon-search" />

优点在于元素始终在 DOM 中,不会重新挂载 <svg>,切换大屏小屏时避免了父级样式重新计算。

但首次进入小屏后,若父级布局未能正确计算 SVG 尺寸(依然为 8.75x8.75),即使切回大屏,图标也不会恢复原大小。因为 v-show 只是切换 display: none,浏览器在 display:none → display:block 时不会触发 SVG 重新渲染,图标尺寸异常被“固化”。

解决方案:使用插槽写法固定尺寸

ElementPlus 提供了 #icon 插槽,可以完全替代 icon="xxx" 的写法。直接使用 <el-icon> 并强制指定尺寸:

<el-buttonv-show="showButton"style="position: absolute; right: 34px; bottom: 38px"roundtype="primary"
><template #icon><el-icon :size="14"><Search /></el-icon></template>
</el-button>
http://www.xdnf.cn/news/15032.html

相关文章:

  • 【ES实战】ES客户端线程量分析
  • 3423. 循环数组中相邻元素的最大差值 — day97
  • OpenCV在Visual Studio 2022下的配置
  • loam的scanRegistration.cpp文件学习
  • 深度剖析:Ceph分布式存储系统架构
  • Html+Css+JavaScript+Vue+Axios入门
  • 计算机网络:(八)网络层(中)IP层转发分组的过程与网际控制报文协议 ICMP
  • 【计算机网络】第三章:数据链路层(上)
  • 数与运算-埃氏筛 P1835 素数密度
  • Python入门笔记
  • 容器技术技术入门与Docker环境部署
  • JavaScript中的Request详解:掌握Fetch API与XMLHttpRequest
  • 微前端框架对比
  • unity 模型UV重叠问题相关(重新整理)
  • web网页,在线%发布,智能投稿,新闻系统%分析系统demo,基于aspnet,net,mvc,echart,sqlserver数据库
  • Spring Boot项目中整合MCP协议及实现AI应用实践
  • 领域驱动设计(DDD)重塑金融系统架构
  • [论文阅读] 人工智能 | 读懂Meta-Fair:让LLM摆脱偏见的自动化测试新方法
  • Qt中的QProcess类
  • 计算阶梯电费
  • CSS知识复习4
  • 安卓10.0系统修改定制化_____安卓9与安卓10系统文件差异 有关定制选项修改差异
  • 瑞斯拜考研词汇课笔记
  • 华为OD机试 2025B卷 - 最长的指定瑕疵度的元音子串 (C++PythonJAVAJSC语言)
  • 指尖上的魔法:优雅高效的Linux命令手册
  • 微软重磅开源Magentic-UI!
  • 在bash shell 函数传递数组的问题2
  • mysql5.7系列-InnoDB的MVCC实现原理
  • 各服务器厂商调整BIOS睿频教程
  • 【Vben3全解】【组件库开发】解决组件库开发中css的命名难题,保证代码质量,构建useNamespace函数