文件上传input file简便美化方案(css)

文件上传input在各个浏览器里表现形式都不一样:

ie6

ie7,8,9

ff

chrome

这里介绍一种简单实用的,在各种浏览器下表现一致的美化方法,效果如下:

ie6无法美化,只能应用部分效果,如下:

选择文件后(以ff为例,不用浏览器显示的路径不同):

html代码:

复制代码代码如下:

选择文件

css代码:

复制代码代码如下:

body{

font-size: 12px;

text-align: left;

}

.input-text{

height: 23px;

width: 315px;

line-height: 23px;

vertical-align: middle;

background: #FAFBFD;

border:1px solid #d4d4d4;

}

.link-btn{

width: 78px;

height: 25px;

display: inline-block;

line-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;

margin-top: 20px;

}

.file-uploader-wrap-fake{

position: absolute;

top: 0;

left: 0;

z-index: 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-index: 2;

cursor: pointer;

_filter : none;

_text-align : left;

_line-height : 27px;

}

js代码:

复制代码代码如下:

window.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);

}

}

在样式方面,采用的是将上传input设置为透明,并且置于文本框和选择文件按钮之上的方法。

.file-uploader中的text-align:right样式是为了将file input置于右边,从而使点击选择文件按钮时可以点击到file input。

js主要作用是选择文件后将路径显示在文本框中。

ie7,8只支持file input的click事件,在点击file input时触发,然后利用ie7,8中选择文件对话框出现时会阻断setTimeout的原理,在选择文件后获取file input的值。由于ie6中文件选择对话框并不能阻断setTimeout,无法在选择文件后及时获取到文件路径,所以无法对ie6进行美化。ie9既支持click事件,也支持change事件。ff和chrome只支持change事件,change事件在文件选择之后触发。

选择文件后,就可以进行同步或者异步的文件上传了。相关阅读:

Win7环境音效怎么设置?Win7系统设置环境音效的方法

Javascript实现真实字符串剩余字数提示的实例代码

CSS代码编写中视觉格式化模型的学习教程

jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)

Android使用ViewDragHelper实现QQ6.X最新版本侧滑界面效果实例代码

Bootstrap3制作自己的导航栏

ThinkPHP验证码使用简明教程

Android实现app应用多语言切换功能

Base64编码解码原理及C#编程实例

Windows 10 build 10149手机版上手多图欣赏

AsyncTask陷阱之:Handler,Looper与MessageQueue的详解

JavaScript Math.ceil() 函数使用介绍

Win8.1系统如何在Modern应用下显示任务栏

JavaScript中DOM详解

php文件上传css,CSS_文件上传input file简便美化方案(css),文件上传input在各个浏览器里 - phpStudy...相关推荐

  1. html 美化input file,文件上传input file简便美化方案(css)

    file,css 文件上传input在各个浏览器里表现形式都不一样: ie6 ie7,8,9 ff chrome 这里介绍一种简单实用的,在各种浏览器下表现一致的美化方法,效果如下: ie6无法美化, ...

  2. 文件上传input简便美化方案

    文件上传input在各个浏览器里表现形式都不一样: ie6 ie7,8,9 ff chrome 这里介绍一种简单实用的,在各种浏览器下表现一致的美化方法,效果如下: ie6无法美化,只能应用部分效果, ...

  3. HTML5 input file类型,accept(文件类型控制)

    在上传文件的时候,需要限制指定的文件类型. <input type="file" accept="image/*" />            ac ...

  4. input file限制上传文件类型的方法

    在前端html中,上传文件时,一般都是用到 type 属性值为 file 的 input 标签,但在默认情况下,file 类型的 input 标签是不限制选择本地文件的类型的. input file ...

  5. angular文件上传php,Angular2里获取(input file)上传文件的内容的方法

    最近在用Angular2,需要有一个上传文件的功能,但是又不想用库,所以直接用原生的input file 标签. 然后想获取上传的内容,于是先想了个愚蠢的方法,先通过id获取到这个input标签,然后 ...

  6. 怎么修改谷歌浏览器文件提交按钮样式_使用css自定义input file浏览按钮样式

    前言 文件上传用途非常广泛,浏览器自带文件控件不太美观,很多时候不能满足需求,需要自定义input [type=file]的样式. 不同浏览器的file控件表现形式不一样 火狐 谷歌 IE 不同浏览器 ...

  7. file input 点击没反应_input file 无法打开手机端文件选择器

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/m0_37805167/article/details/78538044手机端对input file的 ...

  8. js/jq input file获取本地文件路径 将要上传图片显示到页面

    <div class="ge_pic_icon_Infor"><img src="images/moren.jpg"/> </di ...

  9. “压缩(zipped)文件夹“G:\Program\Wechat WeChatFiles(wxid cqpx72n77z9x22 FileStorage\File 2022-12 基...

    "压缩文件夹"是指将一个文件夹中的多个文件和子文件夹打包成一个单独的文件,通常使用压缩软件来实现.这样做的目的是为了节省磁盘空间,方便传输或下载.压缩文件的扩展名通常是" ...

最新文章

  1. Python多阶段框架实现虚拟试衣间,超逼真!
  2. 赛诺朗基智能安全保障平台——安全着你的安全!
  3. 【常用】数学符号及读法大全
  4. Java基础-基本数据类型
  5. 将C#中DateTime类型转化为JavaScript中的Date类型
  6. 【BZOJ1568】【Tyvj3490】Blue Mary开公司 李超线段树
  7. 写一个Windows上的守护进程(4)日志其余
  8. LINQ的基本语法包含如下的8个上下文关键字,这些关键字和具体的说明如下
  9. android 闹钟设置铃声,安卓手机闹钟设置音乐铃声的方法
  10. Excel的最大行数
  11. ios动态效果实现翻页_iOS实现翻页效果动画
  12. Go Moudle笔记
  13. 一分钟让你知道黑白照片修复彩色软件有哪些?
  14. 秒杀项目05-页面优化技术
  15. echarts方形柱状图
  16. NLP - 微信好友个性签名情感分析( 基于Python开源库snownlp )
  17. 人工智能-概述:数据分析---->人工智能【机器学习----->深度学习】
  18. unity3d 直接播放mp3
  19. 北大青鸟java第二次月考笔试_北大青鸟ACCP 4.0一期笔试模拟题二(后24题)...
  20. 关于计算两日期之间经过多少天的超巧妙算法(转载)

热门文章

  1. 计算机处理器的hz越大越好,cpu主频越高运算速度越快吗
  2. html5购票代码,HTML5代码大全
  3. 营销法则之AIDMA|AISAS
  4. Android Studio R文件找不到
  5. 如何网上查询专利费并缴纳。
  6. JUC: 同步辅助类
  7. java 学习~多线程通信 使用共享变量 例子和解释
  8. sqlalchemy.exc.InternalError 问题处理
  9. 在Ubuntu上用python3安装caffe(仅CPU)
  10. 经验九九,处事久久 (转载)