我试图根据我的个人喜好设计一个文件上传按钮,但没有JS,我找不到任何真正可靠的方法来实现这一点.我确实找到了two个other个关于这个主题的问题,但答案要么涉及JavaScript,要么建议回答Quirksmode's approach个.
我对这种Quirksmode方法的主要问题是,文件按钮仍将具有浏览器定义的尺寸,因此它不会自动调整以适应放置在其下方的按钮.我已经基于它编写了一些代码,但它只会占用文件按钮通常占用的空间,所以它根本不会像我希望的那样填充父div.
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%;
}
This fiddle展示了这种方法是如何存在相当大的缺陷的.在Chrome中,点击第二个演示按钮下面的!!
无论如何都会打开文件对话框,但在所有其他浏览器中,文件按钮不会占据按钮的正确区域.
有没有更可靠的方法来设计文件上传按钮的样式,而不使用任何JavaScript,最好使用尽可能少的"黑客"编码(因为黑客攻击通常会带来其他问题,比如小提琴中的问题)?