我在尝试更改chrome和FF上的file_field_tag的默认文本字段时遇到问题,它在IE上工作正常,但在其他浏览器上它没有应用大小。
我的代码是。
file_field_tag“#{compliance.id} _document”,:size => “2
不知道我是否会做错事,但我确信这是我错过的一件小事。
提前致谢
答案 0 :(得分:2)
HTML 4.01规范说明,在<input type="file">
的情况下,此属性定义宽度(以像素为单位),而不是字符。
http://www.w3.org/TR/html4/interact/forms.html#h-17.4
除此之外,您应该使用CSS进行宽度定义。您有两种选择:使用内联样式:
file_field_tag "#{compliance.id}_document", :style="width: 2em"
或(首选)在标记中添加一个类,CSS定义放在样式表中:
file_field_tag "#{compliance.id}_document", :class="short"
/* CSS */
input.short {
width: 2em;
}
/* ..or if you expect some intelligent browsers, you may be more specific: */
input[type='file'].short {
width: 2em;
}
您可能需要进行一些实验,因为文件控件可能会拒绝接受您的宽度。每个浏览器的默认样式表规则可能会定义一些比您的更强的规则。
对于Firefox,您可能会在文件forms.css
中看到定义。在我的系统上,位置为/usr/lib64/xulrunner-1.9.2/res/forms.css
。
有一个定义,可以帮助你:
input[type="file"] > input[type="text"] {
....
定义input[type="file"].short > input[type="text"]
的宽度,你应该没问题。但请注意,可以在浏览器的每个版本中更改此规则。