您现在的位置 » 博客首页 » 前端代码

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

2009-10-13
每次写完的东西就忘了,下次用时还要重查资料重新写,这是今天写的一段测试代码,保留下来,记录给自已,同时分享给大家。

目标:

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



难点

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

解决的方法

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

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

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

第一步

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




第二步

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




最终的效果

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




完整的代码如下

<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)。

File input 的样式和文字的更改方法__适用于Firefox、IE等浏览器 原文地址为:http://www.zishu.cn/blogview.asp?logID=859
评论:11 条 | 查看:5248 次
wfeidan于2011年12月20日17点10分29秒说
请问鼠哥,能不能是按钮啊,如“选择本地图片”的按钮
zishu于2011年12月21日23点43分44秒回复说
把按钮作成图片吧!
guest于2011年07月01日10点15分57秒说
good idea,thanks!
了了于2010年12月29日17点35分30秒说
隔山打牛 厉害!
pp于2010年12月03日16点45分55秒说
这样做还有一个问题,怎样让光标上去的时候变成“手型”
Constantine于2010年09月08日17点28分46秒说
谢谢楼主。
我有一片心于2010年09月06日17点16分14秒说
嗯,这个代码很不错,解决了我这几天一直困扰着我的那个问题,就是关于如何改变input type="file"样式的问题.
ok于2010年08月13日22点06分54秒说
很有才的解决方法
aaa于2010年05月21日22点58分16秒说
很有创意 支持一个
zishu于2009年10月24日8点00分00秒说
[quote][b]最初由 [color=blue]php[/color] 发表于 2009-10-22 06:45 PM:[/b]
请问鼠哥是做网站哪一方面的?[/quote]
从前到后,从设计到程序等乱七八糟的都作。
php于2009年10月22日8点00分00秒说
请问鼠哥是做网站哪一方面的?

发布评论/留言

名字/昵称:
内容: