我们可以改变<input type ="file">样式吗?

lea*_*php 17 css

我试图更改HTML表单,输入类型文件.这是我的代码:

HTML,表单id =表单

<input class="upload_file" type="file" id="file" name="file" />
Run Code Online (Sandbox Code Playgroud)

.CSS

I tried both:
.upload_button{
  background: url('../images/upload_btn_bg.png') no-repeat;
  width: 200px; 
  height: 40px;
}

#form input[type=file]{
  background: url('../images/upload_btn_bg.png') no-repeat;
  width: 200px; 
  height: 40px;
}
Run Code Online (Sandbox Code Playgroud)

这两种方法都不起作用.我确实从一些网站上看到,比如facebook,youtube,google或twitter,它们有不同的风格.不知道他们是怎么做到的.

Mar*_*ona 13

你不能对输入类型文件做任何事情(除了巨大的黑客攻击).我知道这听起来很糟糕,但网络标准仍然没有找到解决方案.

我建议的是,你使用了一些更灵活的东西,比如swfUpload,它可以让你改变窗台,并在上传之前检查文件大小.

这里可以找到一些巧妙的例子

希望这对你有所帮助

  • 没关系.我们都这样做了:-) (4认同)
  • http://markusslima.github.io/bootstrap-filestyle/ (2认同)

Don*_*rek 9

最好的黑客.输入文件HTML:

<input type="file" class="hide" id='inputFile' />
<a href="#" id="triggerFile" class="btn btn-primary">Browse File</a>
Run Code Online (Sandbox Code Playgroud)

使用jQuery:

$('#triggerFile').on('click', function(e){
        e.preventDefault()
        $("#inputFile").trigger('click')
    });
Run Code Online (Sandbox Code Playgroud)


小智 6

你为什么不把css显示为:none然后用另一个按钮触发这个按钮?这可以通过javascript轻松完成,然后您可以完全自己设置按钮的样式

这是一个如何用另一个按钮触发按钮的示例,但这只是众多方法中的一种: 一个按钮触发另一个按钮单击事件