改变 input file 样式的两种方法

改变 input file 样式(input  文件域)是很多前端朋友经常遇到的头疼问题,今天推荐两种改变 input file 样式的两种常用方法:


方法一:

<input type="text" size="20" name="upfile" id="upfile" style="border:1px dotted #ccc">  

<input type="button" value="浏览" οnclick="path.click()" style="border:1px solid #ccc;background:#fff">  
<input type="file" id="path" style="display:none" οnchange="upfile.value=this.value">


也可以写成这样:


<style type="text/css">
<!--
#input1{border:1px solid #0000FF}
#btn1{width:70px;height:21px;font-size:12px;padding-top:3px; background:url(83.gif) no-repeat; height:22px; border:0;}
//-->
</style>


<body><input type="text" id="input1">
<input name="button" type="button" id="btn1" οnclick="myfile.click();" value="浏览文档" />
<input type="file" id="myfile" οnchange="input1.value=this.value" style="display:none">
</body>


方法二:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=gb2312" />
<meta http-equiv="content-language" content="zh-cn" />
<meta name="robots" content="all" />
<meta name="keywords" content="关键字描述" />
<meta name="description" content="站点描述" />
<meta name="author" content="我们,we@126.com" />
<meta name="copyright" content="版权所有" />


<title>css+js定义input的file浏览按钮样式兼容FireFox</title>
<style type="text/css">
<!--
*{ margin:0; padding:0; border:0;}
body{font:12px/130% verdana,geneva,arial,helvetica,sans-serif,宋体; padding:20px;}li{list-style:none;}
.clearfix:after{content:"&nbsp;";display:block;height:0;clear:both;visibility:hidden;}.clearfix{*display:inline-block;}


.text{ border:1px solid #999;height:16px; width:300px; font-family:verdana; font-size:12px;padding-top:2px; float:left;margin-right: 5px;}
.file{ width:67px;overflow:hidden; background:url(83.gif); height:22px; *vertical-align:3px; overflow:hidden; float:left;}
#file{ width:0; height:20px;margin-left: -154px;*margin-left:-3px; filter:alpha(opacity=0);-moz-opacity:.0;opacity:0.0; cursor:pointer;}
-->
</style>
</head>
<body>
<input type="text" class="text" id="text"/>
<span class="file"><input id="file" type="file" /></span>
<script type="text/javascript">
<!--
var file = document.getElementById("file");
var text = document.getElementById("text");
file.onchange = type;
function type()
{text.value = file.value;}
-->
</script>
</body>
</html>
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: input type="file" 标签样式是无法改变的,因为它的样式是由操作系统的文件选择器控制的。但是你可以使用一些技巧来模拟一个自定义样式文件选择器,比如使用 CSS 和 JavaScript 来隐藏原生的 input 元素,然后用一个自定义的按钮触发点击事件,再通过 JavaScript 来模拟文件选择器的操作。具体的实现方法可以参考一些开源的文件上传组件库。 ### 回答2: 要改变 input type=file样式,可以使用以下两种方法: 1. 使用样式丰富的外部库或框架:可以使用一些流行的CSS库或框架,如Bootstrap、Semantic UI等,它们提供了自定义文件输入按钮样式的选项。你可以使用它们提供的类或样式来覆盖默认的input type=file样式。具体的实现方法可以参考对应文档或示例。 2. 使用自定义样式和JavaScript:使用自定义样式和JavaScript可以更灵活地改变 input type=file样式,以下是一种常见的改变样式方法: - 首先,隐藏默认的文件选择按钮:设置 input[type="file"] 的样式 display:none;,这样文件选择按钮将不会显示出来。 - 然后,在附近添加一个自定义的按钮或元素,例如一个按钮或一个带有图标的div。 - 当点击自定义按钮或元素时,通过 JavaScript 来触发 input type=file 的点击事件,使用户能够选择文件。可以使用下面的代码: (假设 input type=fileid 为 "fileInput") ```javascript document.getElementById("customButton").addEventListener("click", function() { document.getElementById("fileInput").click(); }); ``` - 最后,使用 CSS 来美化自定义按钮或元素的样式,例如改变颜色、添加边框等等。 需要注意的是,虽然可以改变 input type=file 的外观样式,但出于安全考虑,浏览器仍然会强制要求用户使用默认的文件选择对话框来选择文件,而不是通过自定义样式的按钮来选择文件。 ### 回答3: 要改变<input type=file>的样式,可以使用以下方法: 1. 使用CSS样式:可以通过对<input type=file>应用CSS样式来自定义其外观。通过设置元素的宽度、高度、边框、背景色等属性,可以改变文件输入框的外观。同时,还可以通过设置文字颜色、字体大小等属性来改变文件输入框中的提示文本。 2. 使用插件或框架:有一些第三方插件或框架提供了更丰富的文件输入框样式定制选项。例如,可以使用jQuery插件如Fileinput等来改变文件输入框的外观。这些插件通常提供了自定义按钮样式、预览功能等扩展功能。 3. 隐藏原始的文件输入框,自定义一个替代的元素:可以使用CSS和JavaScript来隐藏原始的<input type=file>元素,并创建一个自定义的替代元素。例如,可以创建一个按钮或图标,并通过JavaScript与文件输入框进行交互。当用户点击自定义元素时,可以模拟触发文件输入框的点击事件,并实现文件选择功能。 需要注意的是,由于安全限制,无法直接改变<input type=file>元素的样式。然而,通过上述方法可以实现对文件输入框的样式定制或自定义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值