自定义样式 实现文件控件input[type='file']
2016-01-20 11:58
766 查看
一般我们设计的上传按钮都是和整个页面风格相似的样式,不会使用html原生态的上传按钮,但是怎么既自定义自己的样式,又能使用file控件功能呢?
![](http://images2015.cnblogs.com/blog/704103/201601/704103-20160120114536375-1525194995.jpg)
思路是这样的:
1.定义一个相对定位的DIV,按照整成步骤实现自己的结构和样式;
2.在DIV里添加<input type="file" class="my-file">
3.将file控件绝对定位,宽度和高度全部覆盖掉父元素,并且设置透明度为0.
实现代码如下:
大致工作基本完成,但是这里有在IE8里有一个小问题,这里就是为什么要给file加一个 font-size: 120px 的原因。
![](http://images2015.cnblogs.com/blog/704103/201601/704103-20160120115307531-615718167.jpg)
这是控件的原生样式,chrome里点击没问题,但是在IE8里,点击范围只有浏览按钮那个区域
![](http://images2015.cnblogs.com/blog/704103/201601/704103-20160120115252265-1652735188.jpg)
设置字体大小后,人为的扩大了按钮的点击范围,所以这时候点击整个DIV范围都可以弹出文件框。
![](http://images2015.cnblogs.com/blog/704103/201601/704103-20160120114536375-1525194995.jpg)
思路是这样的:
1.定义一个相对定位的DIV,按照整成步骤实现自己的结构和样式;
2.在DIV里添加<input type="file" class="my-file">
3.将file控件绝对定位,宽度和高度全部覆盖掉父元素,并且设置透明度为0.
实现代码如下:
.my-file { cursor: pointer; position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; filter: alpha(opacity=0); font-size: 120px; }
大致工作基本完成,但是这里有在IE8里有一个小问题,这里就是为什么要给file加一个 font-size: 120px 的原因。
![](http://images2015.cnblogs.com/blog/704103/201601/704103-20160120115307531-615718167.jpg)
这是控件的原生样式,chrome里点击没问题,但是在IE8里,点击范围只有浏览按钮那个区域
![](http://images2015.cnblogs.com/blog/704103/201601/704103-20160120115252265-1652735188.jpg)
设置字体大小后,人为的扩大了按钮的点击范围,所以这时候点击整个DIV范围都可以弹出文件框。
相关文章推荐
- html定义input type=file 样式的方法
- CSS基础:text-overflow:ellipsis溢出文本的显示样式
- :nth-child(css3的伪类选择器)
- css段落首行缩进,文字间距
- 终于搞懂了CSS实现三角形图标的原理
- css3动画简介以及动画库animate.css的使用
- 利用css中的em实现弹性页面布局
- Css中的px em rem区别
- 页面加载顺序及解析流程分享
- css全局样式覆盖默认的样式
- coocsstudio使用经验,导出资源
- lc_switch插件实现苹果IOS风格单复选框样式按钮
- CSS3中的rem值与px之间的换算
- CSS3网格布局基础知识 - 弹性尺寸的定义单位:fr 简介及实例
- CSS(Cascading Style Shee)
- css设置table里面单元格强制换行和强制不换行
- 【HTML打卡】0119css 文字、图片、控制器、引入方式、初始化
- CSS的::selection使用方法
- div+css截取字符串在规定长度,超出部分用。。。代替
- CSS中对图片(background)的一些设置心得总结