HTML input type=file文件选择表单的汇总

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML input type=file文件选择表单的汇总相关的知识,希望对你有一定的参考价值。

1. 原生file input大小、按钮文字等UI自定义

元素input的原生样式,不是太好看:

技术分享图片

有一种方法是这样的:
让file类型的元素透明度0,覆盖在我们好看的按钮上。然后我们去点击好看的按钮,实际上点击是是file元素。

然而,此方法有一些不足:

  1. 尺寸控制不灵活。然后高度控制也不精准,我们很难正好覆盖在好看的自定义按钮上。
  2. 样式不好控制,按钮的hover态以及active态不好处理。
  3. html结构限制以及定位成本。

更好的方法是,使用label元素与file控件关联,好处在于:

  1. 点击自定义的漂亮按钮就是点击我们file控件;
  2. 没有尺寸控制不精确的问题;
  3. 没有不能响应hover态active态的问题;
  4. 我们的漂亮按钮甚至可以在form表单元素的外面

代码如下: 

<style>
    .ui_button {
        padding:10px;
        background: #01AAED;
        color: #fff;
    }
    .ui_button:hover {
       opacity: 0.9;
    }
</style> 
<body>
<form> 
        <label class="ui_button" for="xFile">上传文件</label>
        <input type="file" id="xFile" style="position:absolute;clip:rect(0 0 0 0);">
        <span>文件以.video结尾</span>
    </form>
</body>

样式如下:

技术分享图片

2. file类型控件的accept属性

input file类型控件有一个属性,名为accept,可以用来指定浏览器接受的文件类型.

如果是上传图片,可以使用:

技术分享图片

上传视频类型,可以使用:

 技术分享图片

如果是其他类型的:可以参考下:

技术分享图片

然后,多个属性值使用逗号分隔,例如:

技术分享图片

input file只选择文件夹而不是文件

试试下面的代码,测试了下,Chrome浏览器下是可以的,Firefox浏览器下也是可以的,safari和IE目前还不行,有兼容性问题。

技术分享图片

 

以上是关于HTML input type=file文件选择表单的汇总的主要内容,如果未能解决你的问题,请参考以下文章

html input type=file -- 从 iCloud 中选择一个文件

HTML input type=file文件选择表单的汇总

input type=file文件选择

input:file上传文件类型(超详细)

上传文件,html里的input type="file" 在苹果终端上不可用,显示为灰色。其他终端都正常

html file input onchage没有调用(两次选择同一个文件)