自定义上传控件(兼容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,显示全是一样的:

猜你喜欢

转载自www.cnblogs.com/fanqf/p/9001044.html