【发布时间】:2011-04-06 03:11:15
【问题描述】:
有没有办法使用一些 CSS 使 <input type="file"> 在所有浏览器中看起来都一样?
【问题讨论】:
-
很好的问题...但是我已经尝试了所有方法,但不起作用...希望有人能回答!
-
为什么有必要回答一个有几十个和几十个很好回答的重复问题?
有没有办法使用一些 CSS 使 <input type="file"> 在所有浏览器中看起来都一样?
【问题讨论】:
Quirksmode.org 有一篇关于它的有趣文章:http://www.quirksmode.org/dom/inputfile.html
【讨论】:
试试这个 -
【讨论】:
您可以尝试使用 swfupload,这是一个在页面上嵌入微小 Flash 文件而不是文件输入的开源项目...您可以使用 CSS 为触发 Flash 上传的按钮设置任何您想要的样式。
缺点:使用起来可能会很棘手,当然你的用户必须有闪存。
优点:在上传对话框中可以同时选择多个文件!
【讨论】:
您可以简单地设置自己的文件输入按钮的样式。
只需将输入元素的 CSS 属性设置为 style="display:none" 并在 javascript 中处理点击事件。进一步阅读:
Using hidden file input elements using the click() method
编辑:事实证明,出于安全原因,这不再起作用。一个小技巧是将css样式设置为visibility:hidden。
这是一个JSFiddle,我将<input> 字段放在页面末尾的某个位置,并使用<a> 元素触发openFileDialog。
//html
<input id="openFileDialog" type="file" id="files" name="files[]" accept=".json, .txt" />
//js
$("#openFile").on("click", function () {
//throws an error if browser doesn't support file upload
checkFileApiCompatibility();
//opens File Dialog
$("#openFileDialog").click();
$("#openFileDialog").on('change', function(){
openFile(this);
});
});
【讨论】: