选择文件按钮样式如何美化

报名、上传头像都要选文件,原生 inputtype=file 又灰又长,设计稿对不上。做法是:外面一块像按钮的 .file,里面叠一层透明的 file 控件,点按钮就是点 input。本例只接受 jpg、jpeg、png。

原生选文件框如何藏在按钮下面

外层用 ,文案写「选择文件」,input 绝对定位铺满这块区域,opacity: 0 看不见,但还能点。overflow: hidden 把撑得很大的 file 裁在按钮里。font-size: 100px 是老办法,让可点热区尽量盖住整颗按钮,尤其照顾旧版 IE。

可点区域都加手型。accept 只能减少误选,真正拦类型还在后面用扩展名再判一次。jQuery 写在业务脚本前面,事件才能用 $。

按钮常态和悬停颜色怎么写

常态浅蓝底、蓝字、浅边;悬停底和边再深一点,字改成 #004974。宽高不要写死,用 padding: 4px 12px 和 line-height: 20px 撑开,文案改成「上传附件」也不会挤扁。

色值按设计稿替换即可。这坑我见过不止一次:按钮写了手型,里面的 input 忘了写,鼠标移到字上是手、移到空白处又变回箭头。

选中后如何显示文件名

change 挂在 body 上委托到 .file input。取 files0.name 写进旁边的 .showFileName。系统路径在部分浏览器里是 C:\fakepath\xxx.png,不要整段展示,用文件对象的 name 更干净。

同一张图再选一次有时不触发 change,需要的话在处理完后把 this.value 清空。文件名节点和按钮横排,左边距 12px。

文件类型不对时如何提示

扩展名转小写后只放行 jpg、jpeg、png。不过关时清空文件名,显示 .fileerrorTip,并用 layer.msg 再提示一句。jQuery 这套建议用 Layui 做提示,具体按实际项目来定。

没选文件或类型不对时的文案本例是「您未上传文件,或者您上传文件类型有误!」。不要用路径字符串里有没有 jpg 来判断,文件名带这几个字母但不是图时会误放行。

选中的图片如何在页面上预览

类型通过后,用 FileReader 读成 DataURL,赋给 #previewImg 的 src。这是本地预览,还没有传到服务器。

预览图限制最大宽高,避免撑破表单。真正提交时把 inputtype=file 放进 FormData 即可,预览地址不要当服务器路径用。按钮颜色、允许的后缀、提示文案按项目改。

相关推荐
兰亭妙微UI设计公司40 分钟前
兰亭妙微ui设计公司分享:B端组件命名如何支持团队协作
前端·javascript·vue.js
云和数据.ChenGuang1 小时前
光哥说Python 异常深度解析:从异常模型到工程化实践
java·前端·人工智能·python·langchain
小大宇1 小时前
Vue知识点-ElementPlus-03提示框+询问+通知
前端·javascript·vue.js
步行cgn2 小时前
Axios 请求成功但页面不显示:两个前端错误的分析与修正
前端
时间的情敌3 小时前
WebGIS + OpenLayers + GeoServer + PostGIS #量算 #点聚合
前端·geoserver·openlayers
不可能片场4 小时前
Electron 发布 cookie 库先查明文再写解密
前端·electron
郭小李4 小时前
springmvc 拦截器
java·开发语言·前端
web打印社区4 小时前
Chrome-kiosk-printing能上生产吗
开发语言·前端·javascript·chrome·websocket
白帽攻防录4 小时前
某pc客户端app从xss到rce实战案例
前端·网络安全·黑客·xss·rce·src漏洞·app漏洞
志尊宝4 小时前
AI原生前端开发(041):AI辅助的状态管理(Zustand/Pinia)
前端·javascript·ai-native