修改默认input(file)的样式

以上是默认的

<input type="file" >

但是丑爆了啊同志们~~长久以来都是调用大神的代码,今天我也小试牛刀,做出了如下效果:

这样还是能接受的样子啦~

LOOK!

html文件:

<div class="divBox div1">
    <div class="fileName"></div>
    <button>选择文件</button>
    <input type="file" class="file">
</div>

css文件:

        .divBox{
            position: relative;
            display: inline-block;
        }
        button{
            display: inline-block;
            width: 80px;
            height: 34px;
            line-height: 34px;
            background: #FFA837;
            border-radius: 0px 4px 4px 0px;
            text-align: center;
            color: #fff;
            vertical-align: top;
        }
        input{
            width: 80px;
            height: 34px;
            position: absolute;
            top: 0px;
            right: 0px;
            opacity: 0;
            filter:Alpha(opacity=0); /*透明度兼容IE8*/
            vertical-align: top;
        }
        .fileName{
            display: inline-block;
            width: 150px;
            height: 34px;
            line-height: 34px;
            padding:0px 5px;
            overflow: hidden;
            text-overflow:ellipsis;
            white-space: nowrap;
            border: 1px solid #eee;
            vertical-align: top;
            float: left;
        }
        .div1{
            margin:30px;
        }        

js文件:

        function upFile(fileBox){
            var path;
            var fileName;
            var file=fileBox.children(".file");
            var fileFrame=fileBox.children(".fileName");
            file.change(function (path){
                    path=$(this).val();//path为获取的<input type="file">的文件名或文件路径
                    if(path!=‘‘){
                        var pos1 = path.lastIndexOf(‘/‘);
                        var pos2 = path.lastIndexOf(‘\\‘);
                        var pos  = Math.max(pos1, pos2)
                        if( pos<0 ){
                            fileName =path;
                            fileFrame.text(fileName);
                            fileFrame.attr("title",fileName);
                        }
                        else{
                            fileName=path.substring(pos+1);//截取从pos+1索引到末尾
                            fileFrame.text(fileName);
                            fileFrame.attr("title",fileName);
                        }
                    }
            });
        }
        upFile($(".div1"));

以后只要调用upFile()就可以啦~是不是超级棒~超级美~

兼容:IE8+,firefox,chrome~

过来为菜鸟点赞吧!

时间: 2024-10-28 22:03:02

修改默认input(file)的样式的相关文章

input(file)样式修改及上传文件名显示

实现思路: a标签包裹input元素 设置a标签为上传按钮的样式,相对定位 设置input为透明,绝对定位,覆盖到a上面 效果:看到的按钮是a的样式,点击时实际是点击input元素.样式和功能都具备 html代码: <a href="javascript:;" class="file gradient">选择文件 <input type="file" > </a> CSS代码: .file { position

radio checkbox 修改默认样式

1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <title>radio与checbox修改默认样式</title> 7 <style> 8 body{font-size: 12px;} 9 /*radio*/ 10 11 .radio-input label { font-weig

自定义input[type=&quot;file&quot;]的样式

input[type="file"]的样式在各个浏览器中的表现不尽相同: 1. chrome: 2. firefox: 3. opera: 4. ie: 5. edge: 另外,当我们规定 input[type="file"] 的高度,并把它的行高设置成与其高度相等后,chrome中难看的样式出现了: “未选择任何文件”这一行并没有竖直居中. 似乎在 firefox 中好看一些,嗯,我比较喜欢用 firefox.但是这些浏览器中的表现不一致,我们必须做兼容处理. 思

取消chrome浏览器下input和textarea的默认样式;html5默认input内容清除“&#215;”按钮去除办法

取消chrome浏览器下input和textarea的默认样式: outline:none;/*清空chrome中input的外边框*/ html5默认input内容清除“×”按钮去除办法: input::-ms-clear { display: none; }

HTML5的 input:file上传 样式美化及表单异步提交

样式美化请看博客:css input[type=file] 样式美化,input上传按钮美化 input file上传按钮的美化思路是,先把之前的按钮透明度opacity设置为0,然后,外层用div包裹,就实现了美化功能. DOM结构: <a href="javascript:;" class="a-upload"> <input type="file" name="" id="">

自定义input file样式

自定义input file样式:一般都是通过隐藏input,通过定义label来实现.这种做法要注意的是label的for属性要指定input对应的id; <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #file { display: none;

转:input[&#39;file&#39;] 美化上传【1】

css input[type=file] 样式美化,input上传按钮美化 2014年8月29日 256083次浏览 由于明天公司组织出去游玩,今天把这两天的博客都写了吧,今天的内容是input[type=file] 样式美化,input上传按钮美化. 我们在做input文本上传的时候,html自带的上传按钮比较丑,如何对其进行美化呢?同理:input checkbox美化,input radio美化是一个道理的,后面文章会总结. 思路: input file上传按钮的美化思路是,先把之前的按钮

input file 美化的方法

css input[type=file] 样式美化,input上传按钮美化 2014年8月29日 113210次浏览 由于明天公司组织出去游玩,今天把这两天的博客都写了吧,今天的内容是input[type=file] 样式美化,input上传按钮美化. 我们在做input文本上传的时候,html自带的上传按钮比较丑,如何对其进行美化呢?同理:input checkbox美化,input radio美化是一个道理的,后面文章会总结. 思路: input file上传按钮的美化思路是,先把之前的按钮

如何用一张图片代替 &#39;input:file&#39; 上传本地文件??

今天去面试,碰到了一道题,也许是因为紧张或者喝水喝多了,一时竟然没有转过弯来,回来之后一细想原来这么简单,哭笑不得,特此记录一下! 原题是这样的:  如何用一张图片代替 'input:file' 上传本地文件?? 因为默认的 <input type='file'> 上传文件控件样式特别丑,需要换成自定义的图片,如何实现这个功能?? 也就是,将这个玩意: 换成这样的: 当时我还讲了一下label与input之间的绑定关系,问到这个的时候竟然脑袋短路一时没想到label这玩意儿??label作为一