在输入类型内换行文本=";“文本”;元素HTML/CSS

在输入类型内换行文本=";“文本”;元素HTML/CSS,html,input,word-wrap,Html,Input,Word Wrap,下面显示的HTML <input type="text"/> 在浏览器中显示,如下所示: 当我添加以下文本时 那只敏捷的棕色狐狸跳过了那只懒狗 使用下面的HTML <input type="text" value="The quick brown fox jumped over the lazy dog."/> 它显示在浏览器中,如下所示: 但我希望它显示在浏览器中,如下所示: 我希望输入元素中的文本换行。 没有textarea可以实现这一点吗?这

下面显示的HTML

<input type="text"/>

在浏览器中显示,如下所示:


当我添加以下文本时

那只敏捷的棕色狐狸跳过了那只懒狗

使用下面的HTML

<input type="text" value="The quick brown fox jumped over the lazy dog."/>

它显示在浏览器中,如下所示:


但我希望它显示在浏览器中,如下所示:


我希望输入元素中的文本换行。
没有textarea可以实现这一点吗?

这是
textarea
的工作-用于多行文本输入。
输入
;它不是设计来做这件事的

因此,请使用
textarea
。除了视觉上的差异外,它们还可以通过JavaScript以相同的方式访问(使用
value
property)


您可以防止通过
input
事件输入换行符,只需使用
replace(/\n/g,')

分词符即可模拟某些意图

输入[类型=文本]{
单词包装:打断单词;
单词break:打破一切;
高度:80px;
}

您可以不使用输入,您需要使用textarea。 将textarea与
wrap=“soft”
代码和其他可选属性一起使用,如下所示:

<textarea name="text" rows="14" cols="10" wrap="soft"> </textarea>
<textarea name="text" rows="14" cols="10" wrap="soft" maxlength="40" style="overflow:hidden; resize:none;></textarea>
这样,您就可以拥有或示例一个包含14行和10列的textarea,其中包含换行符,最大字符长度为“40”个字符,其工作方式与输入文本框完全相同,但只包含行,而不使用输入文本


注意:textarea处理行与类似输入的
不同,后者根本不处理行。

要创建文本输入,其中引擎盖下的值是单行字符串,但以文字包装的格式呈现给用户,您可以使用
或其他文件上的属性要素:

const el=document.querySelector('div[contenteditable]”);
//从输入事件的元素中获取值
el.addEventListener('input',()=>console.log(el.textContent));
//设定一些价值
el.textContent=“Lorem ipsum curae magna venenatis mattis,purus luctus cubilia quisque in et,leo enim aliquam consequat.”
div[内容可编辑]{
边框:1px纯黑;
宽度:200px;
}

不,我认为它不能。但是为什么textarea不是一个选项呢?使用textarea有时不是一个选项,因为您不想允许输入多行文本。仅包装一行文本(注意:它们不是同一件事)。有一个解决方案正是为了这个目的与标准化协会讨论的,遗憾的是,我找不到这个问题@佩卡웃 这并不相关,但一些原因包括:我们不能在文本区域使用html5验证;我们不能使用模式约束来验证文本区域;textarea是输入类型=text(输入类型为text!)不必要的同义词,这意味着样式的两倍,等等,简而言之,有很多原因。这并不能真正回答在输入时如何收集单行输入并将其包装显示的问题。一个主要问题是,文本区域会抑制移动设备上的“go”按钮。@alex。因此,如果您想要真正的多行输入,那么文本区域更好,但是如果您只想要单词包装输入,那么css解决方案更好。我想说的是,
不会处理jQuery的自动完成之类的事情,只需将
更改为
,这就是所有必要的。标准万岁!如上所述:换行!==多行字符串。我不确定为什么这是公认的答案,因为它没有回答这个问题。我只是在Firefox 43.0.4中测试了它,它不起作用,但在Safari 9和Chrome 48中似乎起作用:@JasonSperske附带的演示对我来说也不起作用,在Firefox 45中也不起作用,在Chrome 50中也不起作用。解决方案至少在Chrome 50中过时了:(忘记这个解决方案:不适用于Chrome 74/75、Firefox 63/67、Edge 42、IE 11和UCBrowser 7.0(但适用于GNOME Web 3.28-AppleWebKit/605.1.15)。到现在为止,演示的链接也已断开