表单中的input type=”file”在前端开发中经常会用到,但是很悲剧的是input type=”file”在各个浏览器下表现不统一,样式很难起作用;

通常我的设计师是非常爱美的,如果真的要还原设计稿,只能通过文本框和按钮去模拟一个input type=”file”。

HTML代码如下:

<div class="type-file-box">
<form action="" method="post" name="form1" id="form1">
<input name="fileField" type="file" id="fileField" size="28" />

</form>
</div>

这是一个基本的input type=”file”。当然这里你可能没看到文本框和按钮的代码,我们可以在后面的js中将文本框和按钮追加到html中。

注意:size=”28″是在firefox下input type=”file”的宽高是不能通过样式来定义的,所以用了size属性来控制input type=”file”的宽度

CSS代码如下:

.type-file-box {
    position:relative;
    width:260px
}
input {
    vertical-align:middle;
    margin:0;
    padding:0
}
.type-file-text {
    height:22px;
    border:1px solid #cdcdcd;
    width:180px;
}
.type-file-button {
    background-color:#FFF;
    border:1px solid #CDCDCD;
    height:24px;
    width:70px;
}
.type-file-file {
    position:absolute;
    top:0;
    right:0;
    height:24px;
filter:alpha(opacity:0);
    opacity: 0;
    width:260px
}
注意:这里的filter:alpha(opacity:0);opacity: 0是让input type=”file”全透明,这样用户看不到input type=”file”。层级在文本框和按钮之上。这样用户在点击按钮的时侯实际上点击的input type=”file”;
js代码:
$(function () {
    var textButton = "<input type='text' name='textfield' id='textfield' class='type-file-text' /> &nbsp;<input type='submit' name='button' id='button' value='浏览...' class='type-file-button' />"
    $(textButton).insertBefore("#fileField");
    $("#fileField").change(function () {
        $("#textfield").val($("#fileField").val());););
这里用了jq当input type=”file”得值onchange的的时侯将文本框的值设置成input type=”file”的值,OK了
demo演示:http://www.css88.com/demo/input-file/

声明: 本文采用 BY-NC-SA 协议进行授权 | WEB前端开发
转载请注明转自《模拟input type=file》

模拟input type=file相关推荐

  1. input type=file 标签禁止让用户手动输入

    常规的Web应用程序中涉及到文件上传的部分都不可避免地会使用到<input type="file"/>控件,在上传文件的时候通过点击"浏览"按钮,在 ...

  2. input type=file 禁止让用户手动输入

    1. 取代法 使用隐藏的<input type="file"/>控件,然后用一个只读的文本框和一个按钮来模拟<input type="file" ...

  3. 自定义input type=file 样式的方法

    为什么80%的码农都做不了架构师?>>>    为什么要美化file控件?试想一下,别的孩子都穿戴整齐漂亮,其中两个孩子怎么都不鸟你,太不和谐了. 原始的file控件是这样的: &l ...

  4. input type=file 实现上传、预览、删除等功能

    不知何时,突然对上传文件按钮起了浓厚的兴趣,当然这源于工作的需要.当时为了顺利上线,索性直接引用了jQuery的一个上传组件,简单粗暴. 后来闲下来,就对这个进行了一番研究,然后做了一个简单的Demo ...

  5. input type=file美化

    最近碰到input type=file 之前用模拟点击来实现美化,发现在IE7下会有bug导致图片上传不上去,最后改用直接美化的方法 <!DOCTYPE html> <html la ...

  6. java注解接收上传文件,前台:Input type=file 后台获取文件内容用的是spring注解,当地环境上传图片是好的,发布到服务器上图片读取不到,求大神指点...

    当前位置:我的异常网» Java Web开发 » 前台:Input type="file" 后台获取文件内 前台:Input type="file" 后台获取文 ...

  7. 利用css对input[type=file] 样式进行美化,input上传按钮美化

    2019独角兽企业重金招聘Python工程师标准>>> <input type="file" name="fileUpload"/> ...

  8. js 获取input type=file 文件,并且上传

    html页面: <input type="file" class="inputPic" allowexts="gif,jpeg,jpg,png, ...

  9. Android WebView 支持H5图片上传input type=file

    2019独角兽企业重金招聘Python工程师标准>>> Android WebView 缓存处理 Android WebView 支持H5图片上传<input type=&qu ...

最新文章

  1. 2021年春季学期-信号与系统-第四次作业参考答案-第八小题
  2. 一种比sys.path更好的获得当前脚本路径的方法
  3. 机房收费系统重构(五)—登陆窗口完整版
  4. linux实现免密登陆
  5. python爬虫爬汽车图片_Python快速爬取车标网图片,以后不要说这什么车你不认识了!...
  6. skywalking原理_微服务链路追踪原理
  7. php打印错误日志到本地,nginx+php怎么打印php的错误日志?
  8. WordPress可视化拖拽自助建站主题The7 V10.0.0
  9. windows下python Tkinner环境布置(包含PIL环境安装)
  10. 储存服务器装什么系统,存储服务器是什么操作系统
  11. C/C++基础::sizeof() 与 sizeof(string)
  12. 【BZOJ1095】【ZJOI2007】捉迷藏 [动态点分治]
  13. access 英语什么意思_Access数据库集成教程二:创建查询
  14. 利用计算机进行文字处理就是进行文字的录入,利用计算机进行古籍整理的方法...
  15. matlab圆孔孔壁应力集中,具有功能梯度加强环的有限尺寸开孔板应力集中问题
  16. 最小二乘法曲线拟合的c++实现
  17. 20135202闫佳歆——信息安全系统设计基础第七周学习总结
  18. matlab中ode指令,matlab中ode5函数编写.doc
  19. 【web性能】获取web各个阶段响应时间:服务器响应时间、首页白屏时间、dom渲染完成时间等
  20. Jquery实现淘宝服饰精品案例

热门文章

  1. 【年终总结】2021年有三AI做了什么,2022年我们要做什么?
  2. 【每周CV论文推荐】 掌握残差网络必读的10多篇文章
  3. 中国网络出版产业盈利模式与投资前景形势研究报告2022版
  4. 中国交通节能减排行业运营效益状况及十四五建设格局分析报告2021-2027年
  5. python输出格式化及函数format
  6. batchnorm2d参数 torch_Pytorch-nn.BatchNorm2d()
  7. 第一个python命令
  8. DBUtils (30)
  9. 网页title上面添加图片
  10. 链表反转leetcode206