如何去掉 input type=file 的 “未选择任何文件”标志?

比如有个需求,是点击一个按钮进行上传图片.

屏幕快照 2018-03-19 下午1.30.18.png

如何实现这个效果呢?

我的做法是 给input外层 裹上一层div
<div class="btn btn-lg btn-outline-primary change-photo">更换头像
<input class="change-photo-btn" type="file" accept="image/jpg,image/png,image/jpeg,image/bmp">
</div>

然后把div的样式 处理成button的一样. 那么重点来了, input的属性怎么写呢?

我是这么处理的
把外层div : { position: relative; }
input { position: absolute; top: 0; left: 0; opacity: 0; cursor: pointer; height: 40px; width: 88px; }

对 ,没错 ;就是 opacity 这只为零;
然后去写 change-photo-btn 的onchang事件. 去操作上传的file 就可以了.

但是 还有个烦人的效果很难搞; 就是鼠标放上去之后,会有个 未选择任何文件 的提示. 如图:

2427550893-5a335e478e8a1_articlex.png

那么这个如何处理呢?

请看代码:
<div class="btn btn-lg btn-outline-primary change-photo">更换头像
<label class="change-photo-btn">
<input class="change-photo-btn" type="file" accept="image/jpg,image/png,image/jpeg,image/bmp" style="
display:none;">
</label>
</div>

我给input 的最外层裹了一个label. 类名与Input相同. 同时, 在Input中, 写上 style="
display:none;" 就可以了

大家可以去试试效果. 看看是不是完美解决.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,690评论 1 92
  • CSS 是什么 css(Cascading Style Sheets),层叠样式表,选择器{属性:值;属性:值}h...
    崔敏嫣阅读 5,359评论 0 5
  • 在做input文本上传时,由于html原生的上传按钮比较丑,需要对其进行美化,radio和checkbox类似 主...
    OnePiece索隆阅读 15,785评论 2 4
  • 基本内容: html超文本标记语言。 页面组成: html>//版本声明 //万国码——gb1312解决中文乱码 ...
    Spencerhyuk阅读 5,157评论 0 1
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,986评论 25 709

友情链接更多精彩内容