更改chrome&的file_field_tag文本字段大小火狐

时间:2010-11-05 09:42:32

标签: html ruby-on-rails css ruby

嗨,伙计们,

我在尝试更改chrome和FF上的file_field_tag的默认文本字段时遇到问题,它在IE上工作正常,但在其他浏览器上它没有应用大小。

我的代码是。

  

file_field_tag“#{compliance.id} _document”,:size => “2

不知道我是否会做错事,但我确信这是我错过的一件小事。

提前致谢

1 个答案:

答案 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"]的宽度,你应该没问题。但请注意,可以在浏览器的每个版本中更改此规则。