2010-11-05 233 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