列不会设置在textarea中

Ski*_*nox 6 html textarea zend-framework

这是非常神秘的.我有一个带有textarea字段的表单.我删除了装饰器和所有这些,我setAttribs用行和列(在Zend Framework中开发).textarea继续非常宽,从容器中溢出并在视口外.如有必要,我可以添加截图.

这是基本代码:

<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>
Run Code Online (Sandbox Code Playgroud)

这是奇怪的.

  1. 如果我更改行值,则行会更改.如果我更改cols值,则没有任何变化.但行确实发生了变化,所以我知道语法是正确的,无论如何我与其他开发人员交叉检查.他们也不知道发生了什么.
  2. 如果我复制代码并将其粘贴到一个简单的html页面中,则textarea会正确调整大小

我查看了CSS(它应该没关系,但是我检查了)并且没有cols的引用,唯一的宽度引用是其他元素.简而言之,绝对没有理由为cols设置的行为方式如此.

然而,确实如此.

aim*_*eld 9

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

textarea {
  width: auto; 
}
Run Code Online (Sandbox Code Playgroud)


Ski*_*nox 2

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

事实证明,由于我不明白的原因,文本区域(也适用于其他元素)想要扩展到最大,无论 cols 说什么。这对我来说毫无意义,但确实如此。

解决这个问题的方法是设置 max-width。一旦我这样做了,元素的行为和大小就达到了正确的宽度。注意:宽度不起作用。只有最大宽度有效。

天啊。