您现在的位置是:网站首页> 编程资料编程资料
input file上传文件样式支持html5的浏览器解决方案使用Html5实现异步上传文件,支持跨域,带有上传进度条HTML5拖拉上传文件的简单实例HTML5+WebSocket实现多文件同时上传的实例html5 实现客户端验证上传文件的大小(简单实例)html5拍照功能实现代码(htm5上传文件)HTML5上传文件显示进度的实现代码Html5实现文件异步上传功能
2021-09-01
1388人已围观
简介 最近在使用file上传控件,发现了file上传控件的两个兼容性问题:一个是file上传控件在火狐下无法通过css改变width,另一个是file上传控件在不同的浏览器下的外观和行为都不一样,本文将提供详细的解决方案
下面是file上传控件在IE10,firefox16,chrome22,opera12,safari5.1.7里的截图:
在IE10里,双击输入框或者单击按钮都弹出文件选择框。在其他浏览器里单击输入框,按钮或文字都可以触发文件选择框。
鉴于这种混乱情况,有必要要统一样式和行为。下面是我的兼容性方案。
先看一下最终结果在各浏览器的截图:

基本思路:创建输入框和按钮模拟file上传控件。将file上传控件设置成透明。让file上传控件与用于模拟的按钮右对齐。修改元素的堆叠顺序,让按钮处于下面,file上传控件在中间,输入框在上面。在文件选择完毕后将file上传控件里的值赋给用于模拟的输入框。
原理:在不同的浏览器里,file上传控件的按钮的height都是可调的,而且file上传控件的右侧都是可以单击的。所以通过调节file上传控件的height,并调整file上传控件的位置(右对齐),可以让file上传控件的可单击区域与用于模拟的按钮完全覆盖。当file上传控件透明时用户单击用于模拟的按钮就触发了文件选择框。但同时file上传控件的堆叠顺序不能先于用于模拟的输入框,不然当用户将鼠标置于所见的输入框上时可能会看到光标不是指示文本而是为一个箭头(而且为一个箭头时单击会弹出文件选择框),用户将感到困惑。
实现:先看看html部分的代码。
然后是css部分的代码。
#file {
position:relative;
width:226px;
height:25px;
border:1px #99f solid;
}
#file input {
font-size:16px;
margin:0;
padding:0;
position:relative;
vertical-align:middle;
outline:none;
}
#file input[type="text"] {
border:3px none;
width:172px;
z-index:4;
}
#file input[type="button"] {
width:54px;
height:25px;
z-index:2;
}
#file input[type="file"] {
position:absolute;
right:0px;
height:25px;
opacity:0;
z-index:3;
}
最后javascript部分,用于把file上传控件获得的文件路径显示到可见的输入框里。
window.onload=function(){
var file=document.querySelector("#file input[type='file']");
var text=document.querySelector("#file input[type='text']");
file.addEventListener("change",assign,false);
function assign(){
text.value=file.value;
}
}
欢迎留言交流或指正。
相关内容
- 免费获得微软MCSD证书赶快行动吧!
- Bootstrap 学习分享
- HTML5实践-图片设置成灰度图html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- 使用css如何制作时间ICON方法实践纯CSS3实现的动态天气小图标特效源码纯CSS3实现天气动画图标特效源码详解CSS中iconfont的使用使用icon fonts来辅助CSS处理图片CSS3制作ajax loader icon实现思路及代码CSS3 icon font完全指南(CSS3 font 会取代icon图标)z-blog用CSS定义分类RSS订阅图标CSS icon图标之纯CSS实现带动画效果的天气图标
- 浅谈three.js中的needsUpdate的应用html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- 用HTML5实现手机摇一摇的功能的教程HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例Html5+JS实现手机摇一摇功能html5摇一摇代码优化包括DeviceMotionEvent等等html5 利用重力感应实现摇一摇换颜色可用来做抽奖等等基于html5 DeviceOrientation 实现微信摇一摇功能
- HTML5是什么 HTML5是什么意思 HTML5简介浅谈HTML5 FileReader分布读取文件以及其方法简介HTML与XHTML、以及HTML4与HTML5标签之间的区别简介HTML5的一个显示电池状态的API简介HTML5安全介绍之内容安全策略(CSP)简介HTML5的标签的代码的简单介绍 HTML5标签的简介html5新增的定时器requestAnimationFrame实现进度条功能HTML5新增加的功能详解iPhone5和iOS6上HTML5开发的新增功能html5简介及新增功能介绍
- HTML5上传文件显示进度的实现代码使用Html5实现异步上传文件,支持跨域,带有上传进度条HTML5拖拉上传文件的简单实例HTML5+WebSocket实现多文件同时上传的实例html5 实现客户端验证上传文件的大小(简单实例)html5拍照功能实现代码(htm5上传文件)input file上传文件样式支持html5的浏览器解决方案Html5实现文件异步上传功能
- input元素的url类型和email类型简介html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- HTML5安全介绍之内容安全策略(CSP)简介浅谈HTML5 FileReader分布读取文件以及其方法简介HTML与XHTML、以及HTML4与HTML5标签之间的区别简介HTML5的一个显示电池状态的API简介HTML5是什么 HTML5是什么意思 HTML5简介HTML5的标签的代码的简单介绍 HTML5标签的简介html5新增的定时器requestAnimationFrame实现进度条功能HTML5新增加的功能详解iPhone5和iOS6上HTML5开发的新增功能html5简介及新增功能介绍
