`
zwt2001267
  • 浏览: 446934 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

File input 的样式和文字的更改方法__适用于Firefox、IE等浏览器(转)

阅读更多

转自:http://www.zishu.cn/09/859.html

 

 

目标:

把下边的这个上传文件的input样式和文字改成一句话“上传图片”,同样实现上传图片的功能。



 

难点

1、不同浏览器的样式表现不同。
2、文字如果只用click这样的方式是不可以的。
3、input 上的文字是没有办法更改的。

解决的方法

用Javascript 尝试了很多种方法,都不行,很麻烦。最后在网上看到一个人写的一个办法,给了些启发,于是只用两行CSS来解决这个问题。

如果直接在文字上加onclick事件来实现input的click(),这时选中文件是可以的,但这样的方式在表单submit时就失效了。所以说,file input 必须是真正的点击才有效果。

于是,就想了个办法,把input 放在文字的上边,弄成透明的,这样在点文字时,实际是点击了input,这样就实现了文件的上传。

第一步

我把input 用CSS改成比较大的,放在文字的后边,这样点文字时,其实是点了Input。

 

<!doctype html public "-//w3c//dtd html 4.01//en" "http://www.w3.org/tr/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>input type file test - zishu.cn</title>
</head>
<style>
#uploadImg{ font-size:12px; border:1px solid #CC0000;  position:absolute}
#file{ position:absolute; z-index:100; margin-left:-180px; font-size:60px;opacity:10;filter:alpha(opacity=10); margin-top:-5px;}
</style>
<body>
<sinput type="file" id="file" size="1" >
<a href="#">上传图片</a> </span>
</bodypan id="uploadImg">
<>
</html>

 

 

第二步

再更改一下CSS,把多出的Input部分隐藏就可以了。

<!doctype html public "-//w3c//dtd html 4.01//en" "http://www.w3.org/tr/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>input type file test - zishu.cn</title>
</head>
<style>
#uploadImg{ font-size:12px; border:1px solid #CC0000; overflow:hidden; position:absolute}
#file{ position:absolute; z-index:100; margin-left:-180px; font-size:60px;opacity:10;filter:alpha(opacity=10); margin-top:-5px;}
</style>
<body>
<span id="uploadImg">
<input type="file" id="file" size="1" >
<a href="#">上传图片</a> </span>
</body>
</html>

 

 

最终的效果

再把Input弄成百分百透明就可以了。

<!doctype html public "-//w3c//dtd html 4.01//en" "http://www.w3.org/tr/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>input type file test - zishu.cn</title>
</head>
<style>
#uploadImg{ font-size:12px; overflow:hidden; position:absolute}
#file{ position:absolute; z-index:100; margin-left:-180px; font-size:60px;opacity:0;filter:alpha(opacity=0); margin-top:-5px;}
</style>
<body>
<span id="uploadImg">
<input type="file" id="file" size="1" >
<a href="#">上传图片</a> </span>
</body>
</html>

 

 

完整的代码如下

<style>
#uploadImg{ font-size:12px; overflow:hidden; position:absolute}
#file{ position:absolute; z-index:100; margin-left:-180px; font-size:60px;opacity:0;filter:alpha(opacity=0); margin-top:-5px;}
</style>

<span id="uploadImg">
<input type="file" id="file" size="1" >
<a href="#">上传图片</a> </span>

 

后结

1、原理就是这样,知道了原理,你就可以随意的更改文字和样式了,改成图片,改成按钮都没有问题。
2、这种方法看上去有点土,但简单,实用,适用我电脑上的所有浏览器(ie6/ie7/firefox)。

 

  • 大小: 592 Bytes
分享到:
评论

相关推荐

    input file 表单修改,IE8 Firefox下兼容

    input file 表单很难用css样式来控制,IE下还好,dorder属性可以修改,但firefox下不行,非常丑,而且file的值通过模拟click事件获取的文件不能提交,也不能传给其他函数。 浏览按钮长度也不可控制。 前几天遇到这个...

    input元素[type="file"]时的样式定制及浏览器兼容性问题探讨

    这在不同浏览器中表现得尤为明显,例如Chrome、Firefox、Safari和IE等,它们的默认样式都有所差异。 解决这个问题的一种常见方法是采用“隐藏真实输入框,模拟样式”的策略。我们可以创建一个包含`input[type="file...

    input file上传文件样式支持html5的浏览器解决方案

    这种方法不仅解决了Firefox下的width样式问题,还确保了在所有主流浏览器中(如IE10、Firefox16、Chrome22、Opera12和Safari5.1.7)的样式和行为一致性。通过这种方式,开发者可以提供更加稳定和一致的用户体验,...

    改变文件域的样式实现思路同时兼容ie、firefox

    本文将探讨一种实现文件域样式改变的方法,同时确保在IE和Firefox等主流浏览器中的兼容性。 首先,我们可以通过CSS来隐藏原始的文件域。通过设置`-moz-opacity`、`filter:alpha(opacity)`和`opacity`这三个属性为0...

    jquery.fileEveryWhere.js 一个跨浏览器的file显示插件

    此外,Firefox对&lt;input type="file"&gt;的宽度定义不支持,但可以通过size属性来间接控制上传框的大小。 为了解决这些问题,jquery.fileEveryWhere.js插件应运而生。它通过JavaScript实现了跨浏览器的文件上传控件显示...

    SWFUpload_多文件上传手册.doc

    12. **修复已知问题**:解决了不同浏览器环境下的若干错误,如IE刷新时的Flash加载问题,Firefox的滚动条问题等。 **四、SWFUpload 设计理念与传统HTML上传比较** SWFUpload 的设计目标是将用户界面(UI)的控制权...

    使用透明效果来自定义文件上传按钮控件样式

    1. 对于不支持File API和XMLHttpRequest Level 2的旧版浏览器(如IE9以下),只能使用表单POST方法进行文件上传。因此,需要确保在这些情况下,表单提交仍然是有效的。 2. 控件的宽度应限制在60px以内,因为在Fire...

    SWFUpload 中文帮助手册

    13. **修复的bug**:包括IE中刷新导致的Flash加载问题,Firefox的滚动条问题,以及其他竞态条件和缓存问题。 14. **ASP.Net Forms兼容**:与.NET环境良好集成。 **设计原理:** 传统的HTML上传方式简单线性,但...

    Uploadify中文详细参考手册 3.1PDF版

    10. **兼容性与性能优化**:Uploadify适用于多种浏览器,包括Firefox、Chrome、Safari、IE等,但需要注意的是,对于不支持Flash的设备(如某些移动设备),Uploadify可能无法工作。手册中会提供关于如何优化性能和...

    jsp中点击图片弹出文件上传界面及预览功能的实现

    这里需要注意的是,IE浏览器和Firefox浏览器处理文件路径的方式有所不同,所以`getPath`函数需要针对不同浏览器进行兼容性处理。 6. 浏览器兼容性问题:在`getPath`函数中,使用`document.selection.createRange()....

    KODExplorer 芒果云-资源管理器

    [关于兼容性] 建议使用chrome firefox ie9+ 体验更完整。ie8以下基本上不做兼容处理。chrome支持文件夹拖拽上传。 [文件打开] office文件在线预览功能,服务器必须在公网(外部能访问该服务器) [忘记密码] 修改data...

    HTML5的技术组成

    HTML5的这些特性已在主流浏览器中得到广泛支持,包括Firefox 5、Chrome 12、Safari 5以及IE 9。为了确保向后兼容,开发者可以使用如CSS3 Pie和Modernizr这样的JavaScript库。对于想要深入学习HTML5的开发者,可以...

    web前端开发代码规范

    - HTML5项目:确保在IE9及以上、Firefox、Chrome、WebKit和Safari等主流浏览器中的兼容性。 - 非HTML5项目:使用Google Chrome的WebKit内核进行兼容性测试。 #### 文件规范 1. **文件存储:** - 所有的HTML、CSS...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    (XML取消了所有标识,包括font,color,p等风格样式定义标识,因此XML全部是采用类似DHTML中CSS的方法来定义文档风格样式。),XML中用来设定显示风格样式的文件类型有: 1.XSL XSL全称是Extensible Stylesheet ...

    javascript实现上传图片并预览的效果实现代码

    这段代码展示了如何在IE6、IE7、IE8和Firefox等浏览器中实现图片上传预览功能。它分为两个实例: 实例一主要针对IE浏览器,利用了IE特有的滤镜技术,特别是`DXImageTransform.Microsoft.AlphaImageLoader`滤镜。这...

Global site tag (gtag.js) - Google Analytics