<input> 通过 CSS 支持多行

Posted

技术标签:

【中文标题】<input> 通过 CSS 支持多行【英文标题】:<input> multi-line capable via CSS 【发布时间】:2010-11-22 10:28:49 【问题描述】:

如果文本比使用 CSS 的字段长,有没有办法让 html 中的 &lt;input /&gt;-字段换行?我不想使用&lt;textarea /&gt;,因为我想避免用户按回车键输入硬换行符。

【问题讨论】:

【参考方案1】:

不,对不起。 &lt;input type=text&gt; 定义为单行。见W3C文档Forms in HTML Documents:

text
    Creates a single-line text input control.

【讨论】:

【参考方案2】:

使用基于 TextArea 的 Dojo 的 Dijit TextArea 表单控件,您可以有一个输入字段,该字段以单行开头并随着用户添加而扩展。

见its documentation。

【讨论】:

【参考方案3】:

你不能单独使用 CSS 做你想做的事,但你可以使用 javascript 来防止用户在 &lt;textarea&gt; 字段中输入换行符。

【讨论】:

他想要一个换行的输入。这对我来说听起来像是一个文本区域。他只是不希望用户能够输入换行符,而您可以使用 JavaScript 来做到这一点。【参考方案4】:

看看这个, http://www.echoecho.com/htmlforms08.htm

换行选项是文本区域中最棘手的部分。 如果关闭换行,则文本将作为一长串没有换行符的文本处理。 如果您将其设置为虚拟,则文本会出现在您的页面上,就好像它可以识别换行符一样 - 但是当提交表单时,换行符会被关闭。 如果您将其设置为物理,则提交的文本与屏幕上显示的文本完全相同 - 包括换行符。

【讨论】:

【参考方案5】:

您最好的选择是使用文本区域(如果您愿意,可以使用自动增长功能),然后在提交表单时去掉新行。使用php它会是这样的:

$text = str_replace(array("\n","\r"),'',$_POST['text_field']);

这将具有阻止换行符的预期效果。正如其他人指出的那样,实际上不可能在输入字段中获得多行输入。

【讨论】:

以上是关于<input> 通过 CSS 支持多行的主要内容,如果未能解决你的问题,请参考以下文章

怎么用css实现多行文本省略?

CSS - 如果第二个 <td> 是多行的,如何修复顶部表格中的第一个 <td>?

多行 html 文本区域

怎样写CSS设置多行文本框的显示行数?

如何从数据库中截断多行文本? (html/css/php)

CSS换行文本溢出显示省略号,多行