<textarea>: 文本区域元素
<textarea> HTML 元素表示多行纯文本编辑控件,当您希望允许用户输入大量的自由格式文本时非常有用,例如评论、评价或反馈表单。
试一试
上面的例子展示了<textarea> 的一些功能
id属性,用于使<textarea>与<label>元素相关联,以实现无障碍访问- 当表单提交时,
name属性用于设置提交到服务器的关联数据点的名称。 rows和cols属性允许您为<textarea>指定确切的大小。设置这些属性对于一致性来说是一个好主意,因为浏览器默认值可能会有所不同。- 在开始和结束标签之间输入的默认内容。
<textarea>不支持value属性。
<textarea> 元素还接受表单 <input> 中的几个常用属性,例如 autocapitalize、autocomplete、autofocus、disabled、placeholder、readonly 和 required。
属性
此元素包含 全局属性。
autocapitalize-
控制是否自动将输入的文本大写,以及如果自动大写,则以何种方式大写。有关更多信息,请参阅
autocapitalize全局属性页面。 autocomplete-
此属性指示浏览器是否可以自动完成控件的值。可能的值是
off:用户必须在每次使用时明确地将值输入此字段,或者文档提供自己的自动完成方法;浏览器不会自动完成输入。on:浏览器可以根据用户在以前使用时输入的值自动完成值。
如果在
<textarea>元素上未指定autocomplete属性,则浏览器使用<textarea>元素的表单所有者的autocomplete属性值。表单所有者是此<textarea>元素的后代的<form>元素,或者其id由输入元素的form属性指定的表单元素。有关更多信息,请参阅autocomplete属性在<form>中的说明。 autocorrect非标准-
一个字符串,指示是否在用户编辑此
textarea时激活自动拼写校正和文本替换的处理(如果有配置)。允许的值是 autofocus-
此布尔属性允许您指定表单控件在页面加载时应具有输入焦点。在文档中,只有一个与表单关联的元素可以指定此属性。
cols-
文本控件的可见宽度,以平均字符宽度为单位。如果指定了它,它必须是正整数。如果未指定,默认值为
20。 dirname-
此属性用于指示元素内容的文本方向。有关更多信息,请参阅
dirname属性。 disabled-
此布尔属性指示用户无法与控件交互。如果未指定此属性,控件将从包含元素继承其设置,例如
<fieldset>;如果在设置disabled属性时没有包含元素,则控件将被启用。 form-
与
<textarea>元素关联的表单元素(其“表单所有者”)。该属性的值必须是同一文档中表单元素的id。如果未指定此属性,则<textarea>元素必须是表单元素的后代。此属性允许您将<textarea>元素放置在文档中的任何位置,而不仅仅是作为表单元素的后代。 maxlength-
用户可以输入的最大字符串长度(以 UTF-16 代码单元为单位)。如果未指定此值,用户可以输入无限个字符。
minlength-
用户应输入的最小字符串长度(以 UTF-16 代码单元为单位)。
name-
控件的名称。
placeholder-
一个提示用户在控件中可以输入什么的提示。占位符文本中的回车符或换行符在渲染提示时必须被视为换行符。
注意:占位符仅用于显示应在表单中输入的数据类型的示例;它们不是与输入绑定的正确
<label>元素的替代品。有关完整说明,请参阅<input>标签。 readonly-
此布尔属性指示用户无法修改控件的值。与
disabled属性不同,readonly属性不会阻止用户单击或选择控件中的内容。只读控件的值仍将与表单一起提交。 required-
此属性指定用户必须在提交表单之前填写一个值。
rows-
控件的可见文本行数。如果指定了它,它必须是正整数。如果未指定,默认值为 2。
spellcheck-
指定
<textarea>是否受底层浏览器/操作系统拼写检查的影响。该值可以是true:表示需要检查元素的拼写和语法。default:表示该元素应根据默认行为进行操作,可能基于父元素自己的spellcheck值。false:表示该元素不应进行拼写检查。
wrap-
指示控件应如何包装表单提交的值。可能的值是
hard:浏览器会自动插入换行符 (CR+LF),以便每行的长度不超过控件的宽度;必须指定cols属性才能使此生效soft:浏览器确保输入值中的所有换行符都是一个CR+LF对,但不会在值中添加额外的换行符。off非标准 :与soft相似,但将外观更改为white-space: pre,因此超过cols的行段不会换行,并且<textarea>变得可水平滚动。
如果未指定此属性,则
soft是其默认值。
使用 CSS 样式化
<textarea> 是一个 替换元素 - 它具有固有尺寸,就像光栅图像一样。默认情况下,其 display 值为 inline-block。与其他表单元素相比,它相对容易设置样式,其框模型、字体、配色方案等可以使用常规 CSS 轻松操作。
设置 HTML 表单的样式 提供了一些关于设置 <textarea> 样式的有用技巧。
基线不一致
HTML 规范没有定义 <textarea> 的基线位置,因此不同的浏览器将其设置为不同的位置。对于 Gecko,<textarea> 基线设置为 textarea 的第一行的基线,在另一个浏览器中,它可能设置为 <textarea> 框的底部。不要在它上面使用 vertical-align: baseline;行为不可预测。
控制文本区域是否可调整大小
在大多数浏览器中,<textarea> 是可调整大小的 - 您会在右下角看到一个拖动句柄,可以使用它来更改页面上元素的大小。这由 resize CSS 属性控制 - 默认情况下启用调整大小,但您可以使用 none 的 resize 值显式禁用它
textarea {
resize: none;
}
设置有效值和无效值的样式
示例
基本示例
以下示例显示了一个文本区域,它具有设置的行数和列数、一些默认内容以及 CSS 样式,这些样式阻止用户将元素的大小调整到超过 500px 宽和 130px 高。
<textarea name="textarea" rows="5" cols="15">Write something here</textarea>
textarea {
max-height: 130px;
max-width: 500px;
}
结果
使用“minlength”和“maxlength”的示例
此示例具有最小字符数和最大字符数 - 分别为 10 和 20。尝试一下,看看结果。
<textarea name="textarea" rows="5" cols="30" minlength="10" maxlength="20">
Write something here…
</textarea>
textarea {
max-height: 130px;
max-width: 500px;
}
结果
请注意,minlength 不会阻止用户删除字符,因此输入的数字超过了最小值,但它确实使输入到 <textarea> 中的值无效。还要注意,即使设置了 minlength 值(例如 3),除非还设置了 required 属性,否则空 <textarea> 仍然被视为有效。
使用“placeholder”的示例
此示例设置了一个占位符。请注意,当您开始在框中输入内容时,它会消失。
<textarea
name="textarea"
rows="5"
cols="30"
placeholder="Comment text."></textarea>
textarea {
max-height: 130px;
max-width: 500px;
}
结果
注意:占位符仅用于显示应在表单中输入的数据类型的示例;它们不是与输入绑定的正确 <label> 元素的替代品。有关完整说明,请参阅 <input> 标签。
禁用的和只读的文本区域
此示例显示了两个 <textarea> - 一个是 readonly,一个是 disabled。您无法编辑任何元素的内容,但 readonly 元素是可聚焦的,并且其值在表单中提交。disabled 元素的值不会提交,并且不可聚焦。
<textarea name="textarea" rows="5" cols="30" readonly>
I am a read-only textarea.
</textarea>
<textarea name="textarea" rows="5" cols="30" disabled>
I am a disabled textarea.
</textarea>
textarea {
display: block;
resize: horizontal;
max-width: 500px;
}
结果
技术摘要
规范
| 规范 |
|---|
| HTML 标准 # the-textarea-element |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。