vue 点击图标实现上传文件效果(icon+input)

方法一:短小精干,不用设置css;(推荐使用)

<label for="fileInput">
  <i class="iconfont icon-photo" aria-hidden="true"></i>
</label>
<input v-show="false" type="file" id="fileInput">

 

方法二、相对定位、绝对定位、overflow配合opacity实现

复制代码
<span class="fileinput-button ">
   <i class="iconfont icon-photo" aria-hidden="true"></i>
   <input type="file" multiple>
 </span>

.fileinput-button {
 position: relative;
 display: inline-block;
 overflow: hidden;
}
.fileinput-button input {
 position: absolute;
 right: 0px;
 top: 0px;
 opacity: 0;
}
复制代码

方法3:label+input,input设置为透明,但是透明了还是会占用空间,需要加一个父标签并设置宽度,超过并隐藏。

<label for="fileInput">
  <i class="iconfont icon-photo" aria-hidden="true"></i>
</label>
<input v-show="false" type="file" id="fileInput" style=" opacity: 0;"> 

 

posted @   小那  阅读(1313)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示