将file标签的"浏览"按钮换成别的语言或图片(转自别人)

如何将INPUT type=file 的"浏览..."按钮换成图片呢? 

方法一:(仅支持IE)

 <HTML>   

  <HEAD>   

  <TITLE>   New   Document   </TITLE>   

  <META   NAME="Generator"   CONTENT="EditPlus">   

  <META   NAME="Author"   CONTENT="">   

  <META   NAME="Keywords"   CONTENT="">   

  <META   NAME="Description"   CONTENT="">   

  <SCRIPT   LANGUAGE="JavaScript">   

  <!--   

  function   test1(){   

  form1.fileABC.click();   

  form1.textfield.value   =form1.fileABC.value;   

  }   

  //-->   

  </SCRIPT>   

  </HEAD>   

    

  <form   name="form1"   method="post"   action="">   

  <input   name="fileABC"   type="file"   style="display:none">   

  <input   type="text"   name="textfield"   readonly="">   

  <input   type="image"   src="xxx.jpg"   οnclick="test1()">   

  </form>   

  </body>   

  </HTML>   

主要思路:采用CSS把FILE控件隐藏掉,新增加一个TEXT的输入框和图片按钮,把TEXT输入框的属性设置为readonly,用户点击

图片按钮时通过JS触发隐藏的FILE控件的click事件,然后把从选择文件得到的值传递给text文本框,从而实现楼主要求的效果。

当然这只是画面上的效果而已,服务器端文件内容的时候还是用FILE控件的名称来取的。

方法二:(支持所有浏览器)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<meta http-equiv="Pragma" content="No-cache" />

<meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />

<meta http-equiv="Expires" content="-1" />

<title>upload</title>

<style type="text/css">

#local_firmware{

       position: absolute;

       left: 0;

       left: 8px\9;

       top: 38px;

       filter: alpha(opacity = 0);  /*IE*/

       -moz-opacity:0;             /*Mozilla*/

       opacity: 0;  

}

</style>

</head>

<body>

<div style="margin:0; padding:0; position:relative">

<h3 style="color:blue;">将上传file标签的中文"浏览"换成英文"Brower"或图片:</h3>

<form action="cgi-bin/webupg" method="post" enctype="multipart/form-data">

<table width="100%"  border="0" cellpadding="0" cellspacing="0" class="table01">

<tbody>

<tr>

<td nowrap=""><input type="file" name="firmware" id="local_firmware" value="browse" maxlength="128" style="height:26px;" size="40" οnchange="document.getElementById('text_path').value=this.value;" hidefocus="hidefocus"/></td>

<td nowrap=""><input type="text"  id="text_path" name="text_path" style="width:260px;" value="" maxlength="128"  readonly/><input type="button"  id="file_button" value="browse..." />&nbsp;&nbsp;&nbsp;<input type="submit" value="Upload" onClick="" id="Upload"/></td>

</tr>

</tbody>

</table>

<input type="hidden" name="act" id="update" value="Update_Firmware" />

</form>

</div>

</body>

 思路:就是用一个文本框和一个按钮模枋file标签,并将一个真正的file标签(和模枋的等大小)设为全透明并覆盖在模枋的上面,这样显示的就是模枋的标签,但是点击时实际是点击到真正file标签上

 

 

 

 

只修改input file组件的浏览按钮样式

<style type="text/css">  
<!--  
#input1{border:1px solid #0000FF}  
#btn1{width:70px;height:21px;font-size:12px;padding-top:3px;border-left:1px solid #FFFFFF;border-top:1px solid #FFFFFF;border-right:1px solid #666666;border-bottom:1px solid #666666}  
//-->  
</style>  
<input type="text" id="input1"> <input type="button" id="btn1" onclick="myfile.click();" value="浏览文档">  
<input type="file" id="myfile" onchange="input1.value=this.value" style="display:none"> 

 

 

input(file)浏览按钮美化

做美工的都知道不同浏览器的浏览按钮(input type=file)样式有所不同,尤其是谷歌,与其他浏览器的几乎没有相同的地方。这个浏览按钮我们几乎是控制不了它的样式的。下面我来分享一下我的美化方法。

 

首先我们先要了解一下各浏览器的浏览按钮的共同特性:

    1、都可以设置整体的宽度和高度,但在IE、火狐、Opera中设置宽度不影响浏览按钮的宽度;

    2、谷歌中只要是input的区域单击可弹出窗口;IE(IE6中没试)中,单击浏览按钮可以弹出窗口,双击文本框区域可以弹出窗口;火狐和Opera中,单击input任何区域都可以弹出窗口;

    3、设置input字体大小,IE、火狐、Opera的流量按钮都变大了(宽与高)。(这点很重要);

从上面的共同特性来看,只要第三条是我们最需要的。

 

现在我们可以开始美化了:

        思路:先用a标签做一个按钮,定好宽度并要加上overflow:hidden;属性,然后将<input type="file" />放在a标签里面,通过定位,将input相对于a的右上角对齐,最后将input的透明度设为0即可。

        为何要右上角对齐?

                之所以右上角对齐是因为在IE、火狐、Opera中,鼠标放在文本框上鼠标呈文本状态,还有一个原因是IE中在文本区域中需要双击才能弹出窗口,这也是我利用上面提到的共同特性的第三点的原因。

        示例代码如下:

1
2
3
4
5
6
7
8
9
< style >
a{display:inline-block; width:100px; height:40px; background:red; position:relative; overflow:hidden;}
a:hover{background:green;}
input{position:absolute; right:0; top:0; font-size:100px; opacity:0; filter:alpha(opacity=0);}
</ style >
    
< a  href = "#" >
     < input  type = "file"  value = "浏览"  />
</ a >

这样各个浏览器的input浏览按钮的样式就达到了一致的效果,file按钮样式美化搞定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值