美文网首页
HTML input type=file 样式设计

HTML input type=file 样式设计

作者: 一个废人 | 来源:发表于2018-02-24 15:35 被阅读186次

工作中需要自定义一个上传按钮,看了张鑫旭的文章,才想到当初可以用lable给input type=file设计样式。

(转)原文来自 http://www.zhangxinxu.com/wordpress/2015/11/html-input-type-file/
有一种方法是这样的:
让file类型的元素透明度0,覆盖在我们好看的按钮上。然后我们去点击好看的按钮,实际上点击是是file元素。

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

尺寸控制不灵活。CSS width属性有些浏览器不管用,需要使用size,然后高度控制也不精准,我们很难正好覆盖在好看的自定义按钮上。
样式不好控制,按钮的hover态以及active态不好处理。
HTML结构限制以及定位成本。
更好的方法是,使用label元素与file控件关联,好处在于:

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

<label class="ui_button ui_button_primary" for="xFile">上传文件</label>
<form><input type="file" id="xFile" style="position:absolute;clip:rect(0 0 0 0);"></form>

而直接用lable 把input包住,不需要加for="xFile",点击lable部分就是点input.

<label class="btn btn-primary">Buscar
   <input type="file" style="display:none"/>
</label>

效果如下:
见原文:http://www.zhangxinxu.com/wordpress/2015/11/html-input-type-file/

相关文章

  • HTML input type=file 样式设计

    工作中需要自定义一个上传按钮,看了张鑫旭的文章,才想到当初可以用lable给input type=file设计样式...

  • CSS - 乱炖一

    原生的html上传组件,样式太丑,可将input type=‘file’的opacity设为0(看不到它,看到的是...

  • tech notes

    前端: 修改input type = 'file'的默认样式 JavaScript 执行机制 WebSocket ...

  • 上传文件 样式 自定义

    css input[type=file] 样式美化,input上传按钮美化 我们在做input文本上传的时候,ht...

  • 修改input类型的文字

    修改input标签type=file类型的文字 视频地址

  • 利用 CSS 穿透覆盖默认样式

    常见发生场景:假如我们需要通过 input,type="file"来上传文件,而这个 input 的默认样式,可以...

  • 2019-10-20

    HTML5 File API 在 HTML5 的 input 标签中,新增了一个 type=file 属性的表单控...

  • css ::file-selector-button 修改inp

    现在可以用::file-selector-button来修改input file上传文件标签样式 html inp...

  • JS小技巧

    CSS 穿透覆盖默认样式input标签 上传type="file",使用img遮盖,防止img阻隔点击事件img ...

  • input type=file修改样式

    效果图 原本的样式 html结构 css样式 jq写法 原生js写法

网友评论

      本文标题:HTML input type=file 样式设计

      本文链接:https://www.haomeiwen.com/subject/croqxftx.html