2011-02-02 25 views
3

這是非常神祕的。我有一個textarea字段的表單。我已經刪除了裝飾器和所有這些,並且我使用了行和列(在Zend Framework中開發)。文字區域繼續非常寬闊,從容器溢出並在視口外。如有必要,我可以添加屏幕截圖。列將不會設置在文本區

這裏的基本代碼:

<form id="edit-pending-email" enctype="application/x-www-form-urlencoded" method="post" action="[path]/email/edit-pending-email/"> 

<label for="salutation" class="optional">Salutation</label> 

<input type="text" name="salutation" id="salutation" value="Yo" /> <p><label for="content" class="optional">Body of Email</label> 

<textarea name="content" id="content" cols="40" rows="30"> blah blah ... text goes here ... 

</textarea></p> 

<input type="submit" name="save" id="save" value="Save" /> 

<input type="submit" name="cancel" id="cancel" value="Cancel" /></form> 

這裏有古怪。

  1. 如果我更改行值,行更改。如果我更改cols值,則不會改變。但是行確實發生了變化,所以我知道語法是正確的,無論如何我都與其他開發人員進行了交叉檢查。他們也不知道發生了什麼。
  2. 如果我的代碼複製並粘貼到一個簡單的HTML頁面,textarea的正確

我都對着CSS(它不應該的問題,但我檢查)大小,有對的cols沒有參考而唯一的寬度引用是其他元素。簡而言之,cols設置的行爲方式完全沒有道理。

然而,它是。

+0

哦糟糕。代碼沒有粘貼。讓' – 2011-02-02 23:04:06

+1

如果您使用Chrome瀏覽器,請右鍵單擊textarea並單擊Inspect Element查看該字段的所有計算樣式特徵的細目。 – earldouglas 2011-02-02 23:16:18

回答

1

我終於追蹤到了這一個。它確實在樣式表中。也就是說,它不在樣式表中,但應該是。

原來,由於我不明白的原因,textarea(也適用於其他元素)想要擴展到最大值,不管cols如何表示。這對我來說沒有意義,但它在那裏。

解決這個問題的方法是設置最大寬度。只要我這樣做,該元素的行爲和大小適當的寬度。注意:寬度不會這樣做。只有最大寬度的作品。

Geez。

4

在設置width: auto之後,cols屬性適用於我(至少在Chrome中,我還沒有測試其他瀏覽器)。

textarea { 
    width: auto; 
}