2010-11-05 239 views
1

嗨的file_field_tag文本框的大小,更改为镀铬和Firefox

我有一个问题,试图改变对铬和FF file_field_tag的默认文本框,它工作正常,在IE浏览器,但是,从其他浏览器是不适用大小。

我的代码是。

file_field_tag “#{} compliance.id _document”:大小=>“2

不知道如果我可能做错了什么,但我相信它,我有一个非常小的事情错过。

预先感谢

+0

您确定此尺寸适用于HTML吗?这可能不是铁轨问题。但HTML兼容性:( – shingara 2010-11-05 09:46:10

回答

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"],你应该确定。但请注意,此规则可能会在每个浏览器版本中更改。

+0

谢谢阿森,内联风格工作得很好,实际上试图指定在红宝石领域的大小..我用:style =>“宽”代替。 – 2010-11-05 10:01:52