【发布时间】:2015-10-29 17:01:46
【问题描述】:
我想在我的页面上有一个样式文件 input 字段,因此将其放在 button 中,它完全覆盖并通过将其 opactiy 设置为 0 使其不可见。
这种方法在最新版本的 Chrome 中运行良好,但 Firefox(和 IE)在单击按钮时不会打开文件对话框:
http://jsfiddle.net/ch8xxvez/3/
<button style="width: 100px; height: 100px; position: relative;">Upload button
<input type="file" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0;"></input>
</button>
如果我用div 替换button 元素,则相同的代码可以工作,但我真的很想知道是否有办法在最新版本的IE 中使用button 标记( >= 10)、FF、Chrome 和 Edge。
【问题讨论】:
-
这完全可行是相当令人惊讶的:它不应该,HTML 是错误的。把它放在一个 div 或类似的元素中,让文件输入
opacity: 0;,并设置 div/similar 元素的样式,这是做你想做的最简单的方法。不要将表单输入元素放在其他表单输入元素中,这没有任何逻辑意义。
标签: javascript html css