2009-02-03 101 views
24

我試圖用這個CSS設置我的表單元素的寬度:如果你看看這個Firefox的截圖中,你會看到無法設置textarea的寬度與CSS

input[type="text"], textarea { width:250px; } 

該字段是不是相同的寬度。我在Safari中獲得了類似的效果。

alt text http://screamingv.com/ss.png

是否有任何變通辦法?

更新:感謝迄今的信息。我現在已經確定兩個元素上的填充/邊距/邊框都設置相同。我仍然有問題。我發佈的原始CSS被簡化了......我還將textarea的高度設置爲200px。當我刪除高度樣式時,寬度匹配。奇怪的。這是沒有意義的。

瀏覽器錯誤?

+0

發佈產生您示例截圖的HTML和CSS。 – Sparr 2009-02-04 00:01:21

+0

您是否檢查過元素周圍的邊距? – Gumbo 2009-02-04 00:05:24

+0

好運風格輸入字段,同時保留原生l&f。如果可能,請將邊框樣式設置爲可接受的。 – artificialidiot 2009-02-04 00:12:36

回答

17

嘗試刪除填充和邊框。或嘗試使他們同爲兩個元素

input[type="text"], 
textarea { 
    width:250px; 
    padding: 3px; 
    border: none; 
    } 

或:

input[type="text"], 
textarea { 
    width:250px; 
    padding: 0; 
    border: 1px solid #ccc; 
    } 

INPUT和textarea元素往往都通過瀏覽器(通過瀏覽器的不同而不同)應用於一些填充,這可以使事情出現有效更寬比分配的寬度。

UPDATE:另外box-sizing: border-box;是一種方便的方式來設置寬度,即填充和邊框將進入而不是添加到寬度。請參閱:http://www.paulirish.com/2012/box-sizing-border-box-ftw/

1

也許你在瀏覽器中的某處定義的用戶特定的CSS覆蓋,因爲我只是測試,它按預期工作:(?測試在Windows也許蘋果機部件有一些怪癖)http://jsbin.com/exase/edit

4

嘗試邊界:0;或邊框:1px solid#000;

3

這可能是由<input><textarea>元素上的不同默認頁邊距造成的。嘗試使用這樣的東西。

input[type="text"], textarea { 
    padding: 0; 
    margin: 0; 
    width:250px; 
} 
5

這個答案就是三年晚了,但我在這裏張貼以防其他人正試圖設置寬度em's,而不是pixels和遇到這個職位(我只是做了)。確保字體大小是相同的,例如

input, textarea { 
    font-size:12px; 
    width:20em; 
    padding:0; 
    margin:0 
} 

否則textarea可能是不同的大小(在FF12上是true)。

3

我也在爲這類問題苦苦掙扎,而這個問題是我的谷歌搜索的第一個結果。最後爲我工作的是設置box-sizing: content-box textarea - Drupal 7默認爲border-box,這會導致填充和邊框寬度從textarea的大小中減去。

1

設置寬度100%,然後用最大寬度:

 textarea { 
      width:100%; 
      max-width:250px; 
    } 

//刪除margin和padding,你可以,如果你想添加它。