如何美化input[type="file"]

基本思路是:

(1)首先在 input 外层套一个 div ;

(2)将 div 和 input 设置为一样大小(width和height);

(3)设置 div 为相对位置, input 为绝对位置,并将 input 的 top 和 right 设为 0 ;

这样, div 和 input 就重叠了,点击 div 就相当于点击 input ;

(4)设置 input 的 opacity 为 0 ,全透明,这样就只能看见 div 了;

至于 div 的样式就随便设置了。

html:

<form action="#" enctype="multipart/form-data" method="post">
<div class="fileupload">
<script>
function getFilename(){
var filename=document.getElementById("file").value;
if(filename==undefined||filename==""){
document.getElementById("filename").innerHTML="点击此处上传文件";
} else{
var fn=filename.substring(filename.lastIndexOf("\\")+1);
document.getElementById("filename").innerHTML=fn; //将截取后的文件名填充到span中
}
}
</script>
<span id="filename">点击此处上传文件</span>
<input type="file" name="file" id="file" onchange="getFilename()"/>
</div>
</form>

css:

 /*文件上传*/
.fileupload{
position: relative;
width:200px;
height:35px;
border:1px solid #66B3FF;
border-radius: 4px;
box-shadow: 1px 1px 5px #66B3FF;
line-height: 35px;
padding-left: 8px;
overflow: hidden;
}
.fileupload input{
position: absolute;
width:200px;
height:35px;
right:;
top:;
opacity:;
filter: alpha(opacity=0);
-ms-filter: 'alpha(opacity=0)';
}

注意:input[type="file"] 的文件路径是受保护的,用 js 获取不到,使用上传的插件可以获取到。(只是从前端的角度讲)

input[type="file"]的样式以及文件名的显示的更多相关文章

  1. 自定义input[type="file"]的样式

    input[type="file"]的样式在各个浏览器中的表现不尽相同: 1. chrome: 2. firefox: 3. opera: 4. ie: 5. edge: 另外,当 ...

  2. html中,文件上传时使用的<input type="file">的样式自定义

    Web页面中,在需要上传文件时基本都会用到<input type="file">元素,它的默认样式: chrome下: IE下: 不管是上面哪种,样式都比较简单,和很多 ...

  3. input[type='file']默认样式

    <input type="file" name="" id="" value="" /> 当input的ty ...

  4. html中input type=file 改变样式

    <style> #uploadImg{ font-size:12px; overflow:hidden; position:absolute} #file{ position:absolu ...

  5. html input[type=file] css样式美化【转藏】

    相信做前端的都知道了,input[type=file]和其他输入标签不一样,它的事件必须是在触发自身元素上,而不能是其他元素.所以不能简单的把input隐藏,放个button上去. <a hre ...

  6. input(type='file')上传多张照片并显示,传到后台

    以下内容为网络摘抄和实践修改所得,如有雷同,请谅解!!!! 1.首先是前端页面代码: 其中,<input type="file" id="file_input&qu ...

  7. 对input type=file 修改样式

    效果图先给: 在html中涉及到文件选择的问题,文件选择使用 input(class="filter_input form-control" type="file) 但是 ...

  8. input[type='file']样式美化及实现图片预览

    前言 上传图片是常见的需求,多使用input标签.本文主要介绍 input标签的样式美化 和 实现图片预览. 用到的知识点有: 1.input标签的使用 2.filelist对象 和 file对象 3 ...

  9. 更改input【type=file】样式

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

随机推荐

  1. make_ext4fs 失败

    root@fengyun-server:/home/fmake_ext4fsengyun/android/reverse_engineer/rom制作# ./make_ext4fs -l 700M - ...

  2. mysql 创建函数ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_f

    mysql 创建函数的时候 报错 ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL D ...

  3. SpringCloud 进阶之Ribbon和Feign(负载均衡)

    1. Ribbon 负载均衡 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端,负载均衡的工具; 1.1 Ribbon 配置初步 1.1.1 修改 micros ...

  4. 爬虫之cookiejar模块

    简介 有时候我们需要爬一些需要登录才能进入网页,这个时候就要用到cookie相关的一些模块来操作了 内置的http包里包含了cookie相关的一些模块,通过她们我们可以自动使用cookie Cooki ...

  5. 【我的Android进阶之旅】Jenkins挂载slave节点,增强分布式编译的效率

    由于公司的Jenkins任务越来越多,而且所有的Android Jenkins任务都在同一台服务器上进行编译,而且该服务器配置Jenkins任务最多3个任务同时运行,所以有时候大家一起编译的时候,只能 ...

  6. Pycharm建立web2py项目并简单连接MySQL数据库

    引言 web2py是一种免费的,开源的web开发框架,用于敏捷地开发安全的,数据库驱动的web应用:web2p采用Python语言编写,并且可以使用Python编程.web2py是一个完整的堆栈框架, ...

  7. 深入了解跟踪(trace)

    深入了解跟踪(trace) 转自:https://www.cnblogs.com/zhijianliutang/p/4113911.html 前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们 ...

  8. (2.4)备份与还原--WAL与备份原理

    预写式日志(Write-Ahead Logging (WAL))  部分转自:http://www.cnblogs.com/wenBlog/p/4423497.html SQL Server中使用了W ...

  9. JQuery能够高效地操作页面元素

    关于DOM和CSS的页面元素选择: $("span");     //全部span元素 $("#elem");  //id为elem的元素 $(".c ...

  10. MyBatis3用户指南

    1. 范围和生命周期     SqlSessionFactoryBuilder -->SqlSessionFactory-->SqlSession-->Mapper 实例 SqlSe ...