CSS方式(基础代码在这里找到):
<html>
<style type="text/css">
div.fileinputs {
position: relative;
}
div.fakefile {
position: absolute;
top: 0px;
left: 0px;
z-index: 1;
}
div.fakefile input[type=button] {
/* enough width to completely overlap the real hidden file control */
cursor: pointer;
width: 148px;
}
div.fileinputs input.file {
position: relative;
text-align: right;
-moz-opacity:0 ;
filter:alpha(opacity: 0);
opacity: 0;
z-index: 2;
}
</style>
<div class="fileinputs">
<input type="file" class="file" />
<div class="fakefile">
<input type="button" value="Select file" />
</div>
</div>
</html>
没有一种易于跨浏览器的方式来样式化文件输入类型。因此,存在一些解决方案,甚至使用JavaScript。
以下是一个你可以使用的jQuery插件,以跨浏览器的方式样式化文件类型:
浏览器不允许您为文件输入样式化。 File Style插件解决了这个问题。它使您能够将图像用作浏览按钮。您还可以使用CSS将文件名字段样式化为普通文本字段。它是使用JavaScript和jQuery编写的。
正如在流行的ajaxian.com上发布的那样,您也可以查看以下内容:
Shaun Inman有一个可爱的小技巧,可以让您使用CSS和DOM样式化文件输入。
这些元素极其难以处理,现在我们在IE上有选择框,我们需要其他东西来修复 :)
http://github.com/jstnjns/jquery-file
希望对你有所帮助!
<label for="file" style="/* style this one, as you want */">Upload file</label>
<input id="file" name="file" type="file" style="display:none;">
一些浏览器需要将文件输入框可见并手动点击浏览按钮,否则它将不会向服务器提交任何内容。因此,我建议使用Saefraz的第一个解决方案:jQuery文件样式插件。