原生HTML5 input type=file按钮UI自定义

原生<input type="file" name="file" />长得太丑

提升一下颜值

实现方案一、设置input[type=file]透明度为0,使用绝对定位遮罩在自定义的按钮标签层的之上.
 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title>原生HTML5 input type=file按钮UI自定义</title>
 6         <style>
 7             .file_upload_box {
 8                 display: inline-block;
 9                 width: 200px;
10                 height: 60px;
11                 position: relative;
12                 overflow: hidden;
13             }
14             .file_upload_box input[type=file] {
15                 position: absolute;
16                 left: 0;
17                 top: 0;
18                 width: 100%;
19                 line-height: 60px;
20                 opacity: 0;
21                 cursor: pointer;
22             }
23             .file_upload_box a {
24                 display: inline-block;
25                 width: 100%;
26                 line-height: 45px;
27                 text-align: center;
28                 font-family: "Microsoft yahei";
29                 background-color: #f60;
30                 color: #FFF;
31                 font-weight: 700;
32                 text-decoration: none;
33             }
34         </style>
35     </head>
36     <body>
37         <div class="file_upload_box">
38             <input type="file" name="file" />
39             <a href="#none">上传文件</a>
40         </div>
41     </body>
42 </html>
推荐实现方案二、利用label的for属性(for 属性规定 label 绑定到哪个表单元素)
 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title>原生HTML5 input type=file按钮UI自定义</title>
 6         <style>
 7             .ui_button {
 8                 display: inline-block;
 9                 line-height: 45px;
10                 padding: 0 70px;
11                 color: #FFFFFF;
12                 font-family: "微软雅黑";
13                 font-weight: 700;
14                 cursor: pointer;
15             }
16             .ui_button_primary {
17                 background-color: #FF6600;
18             }
19             label.ui_button:hover {
20                 background-color: #d46216;
21             }
22         </style>
23     </head>
24     <body>
25         <label class="ui_button ui_button_primary" for="xFile">上传文件</label>
26         <form><input type="file" id="xFile" style="position:absolute;clip:rect(0 0 0 0);"/></form>
27     </body>
28 </html>
时间: 2024-12-15 10:38:46

原生HTML5 input type=file按钮UI自定义的相关文章

使用VUE脚手架+HTML5 input type = file 上传视频

上传视频思路 HTML:1. 在这里首先会用到html5标签 video 音频/视频2. input type = file CSS 给一些样式 *******JS js实现思路:1.通过原生的方法获取上传文件(input)标签 并且交给一个变量.2.通过原生的方法获取音频标签并且交给一个变量.3.通过input标签得到自身的的files[0] :而我们对input.files[0]数据需要处理,于是写一个方法.并且把input.files[0]传进去. 举个栗子: 4.处理数据的具体步骤:在g

&lt;input type=&quot;file&quot;&gt;如何实现自定义样式

利用样式覆盖来实现效果:先看下原本和改变后的样式 1 <!doctype html> 2 <html> 3 <head> 4 <title>file自定义上传样式</title> 5 <style> 6 * 7 { 8 margin: 0; 9 padding: 0; 10 } 11 /*蓝色按钮,绝对定位*/ 12 .btn 13 { 14 position: absolute; 15 width: 100px; 16 height

html中,文件上传时使用的&lt;input type=&quot;file&quot;&gt;的样式自定义

Web页面中,在需要上传文件时基本都会用到<input type="file">元素,它的默认样式: chrome下: IE下: 不管是上面哪种,样式都比较简单,和很多网页的风格都不太协调. 根据用户的需求,设计风格,改变其显示样式的场合就比较多了. 如果,要像下面一样做一个bootstrap风格的上传按钮该如何实现. 搭建上传按钮所需的基本元素 <span class=""> <span>上传</span> <

input type=file 按钮的样式怎么改变?【转】

修改前样式: 这个貌似是不能直接改的,不过可以模拟: <input type=file name=message_img style="display: none;" onchange="ye.value=value" /> <input name=ye value="None file" /> <input type=button value="Select file" onclick=mess

文件上传按钮input[type=&quot;file&quot;]按钮美化时在IE8中的bug【兼容至IE8】

首先看一下完成后的效果,鼠标移入可改变为手指的效果. 在此就不加图标了 <label class="file-upload"> <span>上传附件</span> <input type="file" name=""> </label> 在IE8中需要将input透明后还不能完全达到效果,还需要将字体设大一些,撑开input,这是IE自带的兼容问题. .file-upload{ disp

&lt;input type=&quot;file&quot;&gt;的样式自定义

<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <link rel="stylesheet" href="bootstrap/bootstrap.css"> <l

input type=&quot;file&quot;使用

问题: 在实际开发过程中,会遇到上传文件的一些需求.但是使用原生的<input type="file" />在使用中存在一些问题 在未上传文件时,显示"no file choosen",用户界面不友好,不可配置 上传同一个文件,不会触发change事件,即使该文件做过修改 用户如果在上传过程中点击了"取消",已经上传的文件会被移除 解决思路 在阅读了一些源码之后,总结了如下的解决方案.有点偷梁换柱的意思: 将真正的<input

自定义上传按钮 &lt;input type=&quot;file&quot; name = &quot;file&quot;/&gt; (将file隐藏在button下)

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>定义input type="file" 的样式</title><style type="text/css">body{ font-size:

HTML5学习笔记(2):input type file的特性

一. input type=file与文件上传 本文所说的input type=file指的是type类型是file的input元素,最简HTML代码如下: <input type=file> 但是,为了习惯,我们多写成: <input type="file"> 在HTML5出现之前(XHTML),我们的闭合规则则有些出入: <input type="file" /> 顾名思义,选择文件,并上传文件. 在HTML5还没有出现之前,