自定义上传控件(兼容IE8)

Posted fanqf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义上传控件(兼容IE8)相关的知识,希望对你有一定的参考价值。

上传控件是

<input type="file"/>

  而实际开发过程中,都会自定义一个控件,因为这个控件本身难看,而且不同浏览器效果不一样。

  如IE8显示如下:

  谷歌浏览器显示是这样子的:

  所以通常需要自定义。

1、通常的做法就是把上传控件隐藏,即style="display:none;",再添加一个按钮,设置所需样式,然后通过js触发上传控件的事件。

这样子在谷歌、火狐等浏览器是可以的,但是在IE8中就不兼容了,好多事件都触发不到,比如我需要用到上传控件的onchange事件,IE8就触发不到。

2、页面上直接放两个控件,一个上传控件,一个自定义样式的按钮,使这两个控件重叠,然后设置上传控件的透明度为0、z-index为1000,这样子用户看到的是自定义的按钮,实际上点击的就是上传控件,就兼容IE8了。代码如下:

<input type="file" name="11" style="width:67px;position:absolute;display:inline-block;z-index:1000;filter:Alpha(opacity=0);opacity:0;cursor:pointer;height:23px;" />
<input type="button" value="请选择..."/>

  效果如下,不管是谷歌还是IE8,显示全是一样的:

 

以上是关于自定义上传控件(兼容IE8)的主要内容,如果未能解决你的问题,请参考以下文章

layui文件上传 不兼容ie8怎么解决

H5C3--语义标签以及语义标签IE8兼容,表单元素新属性,度量器,自定义属性,dataList,网络监听,文件读取

CSS自定义文件上传按钮样式,兼容主流浏览器

考虑浏览器兼容的文件上传(IE8不支持FormData)

IE8常见兼容问题及解决方法总结

前端Mvvm QC 上传了测试版