设计基础知识

在第一部分中,您学习了如何构建基本表单。 本部分将重点介绍最佳实践。 在本模块中,您将了解用户体验 (UX),以及精心实现的用户界面 (UI) 为何能带来巨大改变。

创建方便用户使用的界面

填写表单可能既耗时又令人沮丧,但其实不必如此。为了打造出色的用户体验,请确保界面直观易懂。 确保您提供最佳的表单结构和图形设计(布局、间距、字号和颜色)以及逻辑界面(例如标签文字和适当的输入类型)。 了解如何改进表单并使其更易于使用。

标签

您还记得 <label> 元素的用途吗? 标签用于描述表单控件。 清晰且撰写得当的标签有助于用户了解表单控件的用途。

为每个表单控件使用标签

您想向表单添加新的表单控件吗? 首先,请为新字段添加标签。 这样,您就不会忘记添加该信息。

先添加标签还有助于您专注于表单的目标 - 我需要在此处收集哪些数据? 明确这一点后,您就可以专注于帮助用户输入数据并填写表单。

标签措辞

说明您要描述电子邮件字段。您可以按如下方式操作:

<label for="email">Enter your email address</label>

或者,您也可以这样描述:

<label for="email">Email address</label>

您会选择哪种说明?

在我们的示例中,首选“电子邮件地址”一词,因为简短的标签更易于浏览,可减少视觉杂乱,并帮助用户更快地了解需要哪些数据。

标签位置

借助 CSS,您可以将标签放置在表单控件的顶部、底部、左侧和右侧。 您将它放在哪里?

研究表明,最佳做法是将标签放置在表单控件上方,以便用户快速浏览表单并了解哪个标签属于哪个表单控件。

设计表单

良好的表单设计可以显著降低表单放弃率。使用适当的元素和输入类型帮助用户输入数据 您可以选择各种表单元素和输入类型。 为了提供最佳用户体验,请针对您的使用情形使用最合适的元素和输入类型。 如果用户应填写多行文本,请使用 <textarea> 元素。 如果用户需要接受您网站的条款及条件,请使用 <input type="checkbox">

您还应在视觉上区分不同类型的表单控件。 按钮应看起来像按钮。与输入源类似的输入源。让用户更轻松地识别表单控件的用途。例如,如果某个内容看起来像链接,那么点击它应该会打开一个新网页,而不是提交表单。

帮助用户浏览表单

奢华的布局可能很有趣,但可能会妨碍用户填写表单。

特别是,研究表明,最好只使用单列。用户不希望花时间搜索下一个表单控件在哪里。使用单列布局时,只有一个方向可供遵循。

帮助用户与表单互动

为避免意外点按和点击,并帮助用户与表单互动,请确保按钮足够大。建议按钮的点按目标大小至少为 48 像素。您还应使用 margin CSS 属性在表单控件之间添加足够的间距,以帮助避免意外互动。

表单控件的默认大小太小,无法真正使用。您应使用 padding 并更改默认 font-size 来增大尺寸。

您可以使用 pointer CSS 媒体功能为不同的指控设备(例如鼠标)定义不同的尺寸。

// pointer device, for example, a mouse
@media (pointer: fine) {
  input[type="checkbox"] {
    width: 15px;
    height: 15px;
  }
}

// pointer device of limited accuracy, for example, a touch-based device
@media (pointer: coarse) {
  input[type="checkbox"] {
    width: 30px;
    height: 30px;
  }
}

详细了解 pointer CSS 媒体功能

在发生错误的位置显示错误

为了让用户轻松了解哪个表单控件需要他们注意,请在相关表单控件旁边显示错误消息。在表单提交时显示错误时,请务必导航到第一个无效的表单控件。

明确告知用户要输入哪些数据

确保用户了解如何输入有效数据。 用户是否需要输入至少 8 个字符的密码?告诉他们。

<label for="password">Password (required)</label>
<input required minlength="8" type="password" id="password" name="password" aria-describedby="password-minlength">
<span id="password-minlength">Enter at least eight characters</span>

向用户明确说明哪些字段是必填字段

<label for="name">Name (required)</label>
<input name="name" id="name" required>

如果某个字段是必填字段,请明确指出!无障碍表单的结构一文介绍了指示必填字段的替代方法。如果表单中的大多数字段都是必填字段,最好指明哪些字段是选填字段

如何将错误消息与表单控件相关联,以便屏幕阅读器可以访问这些错误消息?您可以在无障碍功能模块中了解相关信息。

检验您的掌握情况

测试您在设计表单方面的知识

如何描述表单控件?

使用 <description> 元素。
再试一次!
使用 <label> 元素。
🎉
使用 description 属性。
再试一次!
使用 placeholder 属性。
再试一次!

建议的点按目标尺寸是多少?

16px
再试一次!
48px
🎉
31.5 像素
再试一次!
大到可以用土豆点按。
再试一次!

应将错误消息放置在何处?

在表单控件旁边
🎉
<form> 顶部。
再试一次!
永不显示错误消息。
再试一次!
随时随地。
再试一次!

资源