让原有的input file样式消失以后,怎么美化
简单一点,谢谢各位大神
1条回答 默认 最新
- lshen01 2023-03-17 09:12关注
参考GPT和自己的思路:
要实现 input file 的 CSS 美化,可以使用伪元素和背景图片来模拟 input file 框和按钮。具体操作如下:
- 隐藏原有的 input file 样式
input[type="file"] { display: none; }
- 使用伪元素 :before 或 :after 来为 input file 添加框和按钮,并设置背景图片
input[type="file"] + .upload-btn:before { content: "选择文件"; display: inline-block; padding: 5px 10px; border: 1px solid #ccc; border-radius: 3px; background-color: #fff; background-image: url(upload.png); background-repeat: no-repeat; background-position: center; cursor: pointer; } input[type="file"] + .upload-btn:after { content: "没有选择文件"; display: inline-block; margin-left: 10px; padding: 5px 10px; border: 1px solid #ccc; border-radius: 3px; background-color: #fff; cursor: pointer; }
- 使用兄弟选择器来将伪元素和 input file 关联起来,使得点击伪元素时触发 input file 的点击事件
input[type="file"] + .upload-btn:before, input[type="file"] + .upload-btn:after { vertical-align: middle; } input[type="file"]:focus + .upload-btn:before, input[type="file"]:focus + .upload-btn:after { outline: none; border-color: #4d90fe; } input[type="file"]:focus + .upload-btn:before { border-color: #4d90fe; } input[type="file"] + .upload-btn input[type="file"] { display: none; } input[type="file"] + .upload-btn:before { content: "上传文件"; } input[type="file"] + .upload-btn:after { content: "未选择文件"; } input[type="file"] + .upload-btn input[type="file"]:hover, input[type="file"] + .upload-btn input[type="file"]:focus { cursor: pointer; }
最终的 HTML 代码如下:
<div class="upload-btn"> <input type="file" name="file" id="file" /> </div>
其中 upload.png 是自定义的图片,可以替换成自己的图片。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 可否使用carsim-simulink进行四轮独立转向汽车的联合仿真,实现四轮独立转向汽车原地旋转、斜向形式、横移等动作,如果可以的话在carsim中如何进行相应设置
- ¥15 Caché 2016 在Java环境通过jdbc 执行sql报Parameter list mismatch错误,但是同样的sql使用连接工具可以查询出数据
- ¥15 疾病的获得与年龄是否有关
- ¥15 关于浏览器控制台js报错问题-swiper.js相关
- ¥15 opencv.js内存,CPU飙升
- ¥15 植物重测序snp数据Treemix分析出现问题!
- ¥15 怎么让当前页面只能有一人在编辑
- ¥15 python程序长时间运行卡死,付费求解决方案
- ¥20 VM打开不了ubuntu虚拟机,如何解决?
- ¥15 java请求一个返回流式数据的接口,如何将流式数据直接返回前端