列将不会设置在文本区

问题描述:

这是非常神秘的。我有一个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

我终于追踪到了这一个。它确实在样式表中。也就是说,它不在样式表中,但应该是。

原来,由于我不明白的原因,textarea(也适用于其他元素)想要扩展到最大值,不管cols如何表示。这对我来说没有意义,但它在那里。

解决这个问题的方法是设置最大宽度。只要我这样做,该元素的行为和大小适当的宽度。注意:宽度不会这样做。只有最大宽度的作品。

Geez。

在设置width: auto之后,cols属性适用于我(至少在Chrome中,我还没有测试其他浏览器)。

textarea { 
    width: auto; 
}