码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2017-12-11 14:16:12      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:UI   pac   就是   样式   好的   漂亮   label   body   log   

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文件选择表单的汇总(二)

标签:UI   pac   就是   样式   好的   漂亮   label   body   log   

原文地址:http://www.cnblogs.com/xuzhudong/p/8021903.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!