最佳答案
我试图设计一个文件上传按钮到我的个人喜好,但我不能找到任何真正可靠的方式来做到这一点没有 JS。我确实找到了关于这个主题的 二 其他问题,但是那里的答案要么涉及到 JavaScript,要么建议使用 夸克斯莫德的方法。
My major issue with this Quirksmode's approach is that the file button will still have the browser-defined dimensions, so it won't automatically adjust to whatever's used as button that's placed below it. I've made some code, based on it, but it will just take up the space the file button would normally take up, so it won't at all fill the parent div like I want it to.
HTML:
<div class="myLabel">
<input type="file"/>
<span>My Label</span>
</div>
CSS:
.myLabel {
position: relative;
}
.myLabel input {
position: absolute;
z-index: 2;
opacity: 0;
width: 100%;
height: 100%;
}
这个小提琴 演示了这种方法是如何存在缺陷的。在 Chrome 中,单击第二个演示按钮下面的 !!
将打开文件对话框,但在其他所有浏览器中,文件按钮不会占用该按钮的正确区域。
有没有更好的方法来设计文件上传按钮,不使用任何 JavaScript,最好使用尽可能少的“ hacky”代码(因为黑客通常会带来其他问题,比如小提琴中的问题) ?