列不会在文本区域中设置

Posted

技术标签:

【中文标题】列不会在文本区域中设置【英文标题】:Columns won't set in a textarea 【发布时间】:2011-06-20 08:05:00 【问题描述】:

这太神秘了。我有一个带有 textarea 字段的表单。我已经删除了装饰器和所有这些,并且我 setAttribs 带有行和列(在 Zend 框架中开发)。文本区域仍然非常宽,溢出其容器和视口之外。如果需要,我可以添加屏幕截图。

这是基本代码:

<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>

这里有一些奇怪的东西。

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

我查看了 CSS(没关系,但我检查了),没有对 cols 的引用,唯一的宽度引用是对其他元素的引用。简而言之,绝对没有理由说明 cols 设置的行为方式。

然而,确实如此。

【问题讨论】:

哦,杂种。代码没有粘贴。让我们 如果您使用 Chrome,请右键单击 textarea 并单击 Inspect Element 以获取该字段的所有计算样式特征的细分。 @James 或 Firefox 中的 Firebug。 @Skip 到目前为止,您发布的所有内容都指向 CSS。 感谢 cmets。我已经看过了。 cols="40" 和 rows="30" 就在 textarea 标签中。 CSS 继承的规则说这些设置应该覆盖样式表中的任何内容。无论如何,正如我在原帖中所说,我已经彻底检查了样式表,并且没有与 textarea 或 form 相关的宽度设置。 多哈。不习惯这个编辑器。我只是想说我同意这听起来是一个风格问题,但我不能把它归结为那个。从 php 方面来看,我发布的代码有什么问题吗?或者这一切看起来都正确?我在 php (Zend) 方面比我在 CSS 方面的新手要多得多,我已经深入研究了很多年。 【参考方案1】:

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

textarea 
  width: auto; 

【讨论】:

由于 Chrome 基本上是 Webkit(目前),这也适用于 Safari。【参考方案2】:

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

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

解决这个问题的方法是设置最大宽度。一旦我这样做了,元素就会表现出来并调整到适当的宽度。注意:宽度不会这样做。只有最大宽度有效。

天哪。

【讨论】:

【参考方案3】:

尝试将 max-width 设置为 : 任何你想要的 % for exp(60%)。应该这样做

【讨论】:

【参考方案4】:

&lt;p&gt;&lt;/p&gt; 在您的 &lt;textarea&gt;&lt;/textarea&gt; 周围。你应该使用&lt;div&gt;&lt;/div&gt;

【讨论】:

以上是关于列不会在文本区域中设置的主要内容,如果未能解决你的问题,请参考以下文章

jQuery在文本区域中设置光标位置

如何使用javascript在文本区域中设置输入类型文本中的值? [复制]

如何在资源管理器的文本区域中设置占位符的样式?

如何在 Textarea 中设置最小字符数

从 Jquery Ajax 调用中设置 CodeMirror 文本区域的值

如何在文本区域的末尾设置光标?