「这是我参与2022首次更文挑战的第13天,活动详情查看:2022首次更文挑战」
本篇依旧是 form 相关内容,上一篇介绍了 input,本篇来看一下其他的表单元素。
button
button 也是一个很常用的标签,除了在表单中,在其他场景下也经常会使用 button 来添加点击内容。这里需要注意 button 的 type 属性,它的取值有 submit、reset、button、menu,其默认值为 submit,因此如果在 form 中需要普通按钮一定要设置 type 为 button。
button 的其他属性比较简单,这里不展开介绍了,与 button 类型的 input 相比,button 本身设置样式更加容易,也更符合语义,因此优先选择 button 标签。
textarea
这个之前也提到过,渲染的是文本域,可以输入多行文本。它的很多属性都与 type 为 text 的 input 标签相同,区别就是这里可以输入多行内容,可以通过 cols 设置宽度,使用 rows 设置显示高度。
select
下拉选择组件,渲染原生的下拉框,支持单选和多选,当设置 multiple 时可以使用操作系统原生的多选方式进行多选。原生的 select 层级很高,这里需要注意。
select 中的选项由 optgroup 和 option 标签来提供,option 为单个选项,optgroup 可以为选项添加分组,使用 label 设置组名。除了 select,option 还可以用在 datalist 中。
lable
为表单内容添加标签,使用 for 属性与内容的 name 进行关联,添加标签后会在旁边显示。标签可以被屏幕阅读器识别,能够提供更好的无障碍访问效果。点击标签可以直接聚焦到表单项中,可以扩大焦点范围。
datalist
datalist 是一组数据集合,下面可以添加一系列 option,支持 list 属性的表单元素可以指定关联的 datalist,这样可以用来提示,举个例子:
<label>Choose a browser from this list:
<input list="browsers" name="myBrowser" /></label>
<datalist id="browsers">
<option value="Chrome">
<option value="Firefox">
<option value="Internet Explorer">
<option value="Opera">
<option value="Safari">
</datalist>
fieldset、legend
fieldset 的效果是为表单中一组输入内容添加分组,使用 legend 指定分组的标题。
progress、meter
progress 为进度条,meter 为计量条,虽然渲染出来的效果很相似,但是含义不同,前者表示进度百分比,只支持设置最大值和当前值两个属性,后者可以表示一个范围内的计量大小,可以设置最大值最小值起始位置终止位置等属性。
output
用来描述计算结果,这里直接看例子:
<form oninput="x.value=parseInt(a.value)+parseInt(b.value)">0
<input type="range" id="a" value="50">100
+<input type="number" id="b" value="50">
=<output name="x" for="a b"></output>
</form>
以上就是 form 相关的剩余内容了,form 中涉及到的东西比较多,现在虽然不一定会直接使用 form 标签,但是 form 中的用户输入元素还是很常用的。