重学 HTML —— 表单(三)

176 阅读2分钟

「这是我参与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 中的用户输入元素还是很常用的。