如何使文件输入字段换行?

mie*_*nik 9 html css forms file input

在HTML表单中,我有一个像这样的文件字段:

<div class="filefield">
<input type="file" name="myfile" id="fileinput">
</div>
Run Code Online (Sandbox Code Playgroud)

它会在按钮旁边显示一个按钮和一些文本.如果尚未选择任何文件,则文本为:No file chosen.如果已选择文件,则显示文件名.

此文本显示在按钮的右侧.我希望它显示在按钮下方.我已经在CSS中尝试了很多东西,没有任何作用,No file chosen只是总是显示在按钮的右侧,即使div和输入都给定的固定宽度仅与按钮一样宽,并且固定高度足够高一个按钮和两行文本,文本仍然显示在div的右边,而不是在div内部空间的下方.如何使其包装,以便文本显示在按钮下方?

hoo*_*ter 7

随着@ Guffa的回答表明你不能搞乱这个领域,你可以围绕它创建一个黑客.

按钮元素怎么样,点击就像文件浏览器按钮?然后是一个包含该文件浏览器输入值的span元素?这肯定是一些js hackery,但可以解决问题.

编辑

工作示例:http://jsfiddle.net/nmeAW/1/

编辑2

更好的工作示例:http://jsfiddle.net/nmeAW/2/


Guf*_*ffa 5

你不能.文件输入字段是单个控件,即使它看起来像可以单独控制的几个控件.

此外,文件输入控件的显示方式完全取决于您使用的浏览器.它的外观未在标准中指定,因此任何浏览器供应商都可以选择以他们认为合适的方式显示它.


Jar*_*ish 3

您可能会研究jQuery和一些上传文件插件,它们可以通过隐藏输入并激活/显示 html 中的文件选择信息来帮助您“重新设计”输入。

http://www.tutorialchip.com/jquery/9-powerful-jquery-file-upload-plugins/

http://www.uploadify.com/demo/

http://www.plupload.com/example_queuewidget.php

http://blogs.bigfish.tv/adam/2009/06/14/swfupload-jquery-plugin/