如果你曾经试过,你就会知道,用纯CSS样式加HTML实现统一的上传文件按钮可能会很麻烦。看看下面的不同浏览器的截图。很明显的,他们长得很不一样。

我们的目标是创造一个简洁,用纯CSS实现的,在所有浏览器里的样子和布局是一样的上传文件按钮。我们可以这样:
步骤1.创建一个简单的HTML标记
| 1234 | <div class="fileUpload btn btn-PRimary"><span>Upload</span><input type="file" class="upload" /></div> |
第2步:CSS: 有点棘手了
| 12345678910111213141516 | .fileUpload {position: relative;overflow: hidden;margin: 10px;}.fileUpload input.upload { position: absolute;top: 0;right: 0;margin: 0;padding: 0;font-size: 20px;cursor: pointer;opacity: 0;filter: alpha(opacity=0);} |
为简单起见,我使用应用了BootstrapCSS样式的按钮 (div.file-upload)。
演示:

上传按钮,显示选中的文件
不幸的是纯CSS的做不到这一点。但是,如果你真的想显示所选文件,下面的javaScript代码片段可以帮助你。
| 123 | document.getElementById("uploadBtn").onchange = function () {document.getElementById("uploadFile").value = this.value;}; |
DOM:
| 12345 | <input id="uploadFile" placeholder="Choose File" disabled="disabled" /><div class="fileUpload btn btn-primary"><span>Upload</span><input id="uploadBtn" type="file" class="upload" /></div> |
演示:

原文地址:geniuscarrier.com
新闻热点
疑难解答