文件上传input file简便美化方案(css)
网站建设 2023-01-28 20:49www.1681989.com免费网站
文件上传put在各个浏览器里表现形式都不一样
ie6
ie7,8,9
ff
chrome
这里介绍一种简单实用的,在各种浏览器下表现一致的美化方法,效果如下
ie6无法美化,只能应用部分效果,如下
选择文件后(以ff为例,不用浏览器显示的路径不同)
html代码
复制代码
代码如下:<form id="UploadForm" method="post" enctype="multipart/form-data">
<div class="file-uploader-wrap">
<put type="file" class="file-uploader" name="uploadDataField" id="FileUploader"/>
<div class="file-uploader-wrap-fake">
<put type="text" id="PathDisplayer" class="put-text" disabled />
<a href="javascript:void(0)" class="lk-btn" >选择文件</a>
</div>
</div>
</form>
css代码
复制代码
代码如下:body{
font-size: 12px;
text-align: left;
}
.put-text{
height: 23px;
width: 315px;
le-height: 23px;
vertical-align: middle;
background: #FAFBFD;
border:1px solid #d4d4d4;
}
.lk-btn{
width: 78px;
height: 25px;
display: le-block;
le-height: 25px;
text-align: center;
vertical-align: middle;
background: url('./images/btn.png') 0 -110px;
color: #6d767f;
text-decoration: none;
}
.file-uploader-wrap{
position: relative;
width: 405px;
height: 27px;
marg-: 20px;
}
.file-uploader-wrap-fake{
position: absolute;
: 0;
left: 0;
z-dex: 1;
height: 27px;
_display : none;
}
.file-uploader-wrap .file-uploader{
position: relative;
width: 400px;
height: 27px;
text-align: right;
filter : alpha(opacity = 0);
opacity: 0;
z-dex: 2;
cursor: poter;
_filter : none;
_text-align : left;
_le-height : 27px;
}
js代码
复制代码
代码如下:wdow.onload = function(){
var fileUploader = document.getElementById('FileUploader');
var pathDisplayer = document.getElementById('PathDisplayer');
if(fileUploader.addEventListener){
fileUploader.addEventListener('change', fileUploaderChangeHandler, false);
}else if(fileUploader.attachEvent){
fileUploader.attachEvent('onclick', fileUploaderClickHandler);
}else{
fileUploader.onchange = fileUploaderChangeHandler;
}
function fileUploaderChangeHandler(){
pathDisplayer.value = fileUploader.value;
}
function fileUploaderClickHandler(){
setTimeout(function(){
fileUploaderChangeHandler();
}, 0);
}
}
在样式方面,采用的是将上传put设置为透明,并且置于文本框和选择文件按钮之上的方法。
.file-uploader中的text-align:right样式是为了将file put置于右边,从而使点击选择文件按钮时可以点击到file put。
js主要作用是选择文件后将路径显示在文本框中。
- ie7,8只支持file put的click事件,在点击file put时触发,然后利用ie7,8中选择文件对话框出现时会阻断setTimeout的原理,在选择文件后获取file put的值。由于ie6中文件选择对话框并不能阻断setTimeout,无法在选择文件后及时获取到文件路径,所以无法对ie6进行美化。ie9既支持click事件,也支持change事件。ff和chrome只支持change事件,change事件在文件选择之后触发。
选择文件后,就可以进行同步或者异步的文件上传了。
网站设计
- 静宁会SEO的网站建设公司:全面提升您的网络影
- 提升在线业务的关键:选择最佳的丽水网站建设
- 浙江网站优化发展潜力如何
- 井研专业的网站建设公司:打造您的在线品牌
- 灵山SEO网站建设公司:提升您的在线业务表现
- 蒙城网站建设优化公司:提升您网站表现的理想
- 阳谷企业网站优化:提升线上业务力的关键
- 樟树专业的网站建设公司:打造您在线业务的坚
- 通河百度SEO排名的策略与技巧
- 重庆百度快照排名如何进行精准的客户引流
- 重庆百度快照排名
- 常宁便宜的建站公司:助您轻松打造在线业务
- 巫溪百度网站优化:提升网站曝光率与流量的关
- 湖北整站优化怎么做才能放大客户需求
- 闸北网站建设多少钱?全面解析与预算规划
- 辽宁企业网站优化怎么做电话营销