您现在的位置是:网站首页> 编程资料编程资料
HTML中文件上传时使用的<input type="file">元素的样式自定义HTML5表单新特征简介与举例 WORD版HTML5的新特性(1) HTML5新特性之用SVG绘制微信logo HTML5有哪些新特征文件上传input file简便美化方案(css)upfile asp文件上传 又一奇迹般的突破用Jquery实现大文件上传 Jquery Large File Upload v10.31.0ASP.NET FileUpload 文件上传控件HTML5新特性之type=file文件上传功能
2023-10-09
327人已围观
简介 这篇文章主要介绍了HTML中文件上传时使用的<input type="file">元素的样式自定义的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
Web页面中,在需要上传文件时基本都会用到元素,它的默认样式:
chrome下:

IE下:

不管是上面哪种,样式都比较简单,和很多网页的风格都不太协调。
根据用户的需求,设计风格,改变其显示样式的场合就比较多了。
如果,要像下面一样做一个bootstrap风格的上传按钮该如何实现。

搭建上传按钮所需的基本元素
效果(chrome):

现在看到的分两行显示。
外围之所以没有换成div,是因为在IE7-浏览器中,只要不是设成inline,它的宽度全都会撑开到能撑到的宽度。如果设成inline,那元素的宽度就无法调整,所以这里用span然后设成inline-block能解决这样的问题。
增加样式将两行变成一行
css:
效果:

默认是没有浅蓝色边框,只有鼠标去点击后,才会显示,这里显示出来是为了看得清楚。
通过将外围的span设成display:relative,将input设成display:absolute的方式让他们都脱离文档流。
通过将input限定在外围的span中进行绝对定位的方式让本来两行显示的变成一行显示。
实际上这里已经overflow了,真正的宽度是“上传”文字的宽度,修改fileinput-button样式增加overflow: hidden
效果:

很有意思,能看到上边后右边的蓝色边框了吧,其实就是把左边和下边的溢出部分给隐藏了。
这时候用鼠标去点击“上传”两个字实际上是点在input上,能够显示“打开”对话框,因为显示层级上input要比“上传”更靠近用户。
注意input定位中的right,为什么不用left定位。
当我们改成left后。
效果(chrome):

效果(IE):

在chrome下input元素中的选择按钮露出来,但是没关系,可以通过后面的设透明的方式把它透明掉。
但是在IE下确是会把输入框露出来,关键是鼠标移到输入框上时,指针会变成输入状态,这个就很没法处理了。
通过right的定位方式把输入框移到左边去的方式,可以在IE下回避出现鼠标指针变成输入态的情况。
透明input元素
css:
效果:

input完全不见了踪影,点击“上传”依然有效。
可以支持IE8+。
引入bootstrap,并添加按钮样式
head中增加外部css和js的引用。
增加按钮样式。
效果:

解决大小问题
如果为fileinput-button样式增加width:100px,将外围的span设成宽100px,会发现点击下部是没有反应的,原因就是input是默认大小,无法覆盖下部。
可以通过为input设置一个很大的字号将其撑大的方式来解决覆盖问题,这里就设个200px。
这样就能解决覆盖问题。
完成。
参考:jQuery-File-Upload
如果是要兼容IE7-可以参考jQuery-File-Upload中的写法。
代码:
- >
- <html>
- <head>
- <title>title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
- <link rel="stylesheet" href="bootstrap/bootstrap.css">
- <link rel="stylesheet" href="bootstrap/bootstrap-theme.css">
- <script src="bootstrap/jquery-1.10.2.js">script>
- <script src="bootstrap/bootstrap.js">script>
- <style>
- .fileinput-button {
- position: relative;
- display: inline-block;
- overflow: hidden;
- }
- .fileinput-button input{
- position:absolute;
- right: 0px;
- top: 0px;
- opacity: 0;
- -ms-filter: 'alpha(opacity=0)';
- font-size: 200px;
- }
- style>
- head>
- <
提示: 本文由神整理自网络,如有侵权请联系本站删除!
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
相关内容
- htm初学笔记(新手必看)全面了解html.css溢出HTML5中原生的右键菜单创建方法使用HTML5里的classList操作CSS类HTML简述(新手必看) ppt版浅谈HTML代码中的空格和空行HTML5 canvas基本绘图之图形组合
- 全面了解html.css溢出html 表格比较宽溢出的解决方法html文本溢出显示省略字符的两种常用解决方法
- 浅谈HTML代码中的空格和空行HTML中的5种空格各表示的意义HTML大于号、小于号、空格、引号等常用的转义代码写法一览表探讨HTML不同空格的特性与表现形式(推荐)浅析html 空格代码HTML/CSS中的空格处理及如何保留页面中的空格
- HTML (css样式规范)必看篇书写CSS的5个小技巧让你的样式更规范让样式表CSS代码更加专业规范 CSS 样式书写规范(推荐)
- HTML中相似的标签和属性的区别详解细数html中的列表标签html中常用的标签总结(必看)HTML5新增加标签和功能概述html meta标签的使用总结(推荐)浅谈Html5中视频 音频标签 进度条的问题HTML块级标签汇总(小篇)HTML标签marquee实现滚动效果的简单方法(必看)
- 中国好学霸第五册所有答案大全_手机游戏_游戏攻略_
- 疯狂猜成语 一排高低不一的木板 答案是什么成语_手机游戏_游戏攻略_
- 疯狂猜成语 一个人腰部插着一根箭 答案是什么成语_手机游戏_游戏攻略_
- 成语玩命猜 一个人背着包袱身后有房子和一口井 答案是什么成语_手机游戏_游戏攻略_
- 成语玩命猜 一堵墙左边一张嘴右边一只耳朵 答案是什么成语_手机游戏_游戏攻略_
点击排行
本栏推荐
