分步表单_表单设计-掌握表单设计方法(表单体验篇)

2adefa969c6401f29b81d5a6bc9ad547.png

全篇阅读大概需要15min,对表单设计不熟悉的同学看完后肯定会有不少的收获~~~

说到表单其实在生活中可以接触到各种各样的表单,比如:驾照申请表、体检表、银行开户需要填写的表等等,这些都是表单,主要目的就是让用户填写来【收集用户信息】。

aa9e76611fcf64fc211deb75bc3d97cf.png
(驾照申请表)

做为基础组件的表单,使用频率非常高,对业务起到至关重要的作用,如使用APP时登录页面、某宝下单支付时的页面、自媒体的同学上传自己作品时的页面,这些都是基于不同业务场景下的不同类型的表单。

389aa89439ec05894e048f5264119fbf.png

初看这些表单,你可能觉得很简单,就是一些标签、非常基础的小组件,但是在实际业务中,想要将这些小组件组合拼装成合适的表单却需要推敲非常多的细节,常常会让设计师陷入无限的纠结中,比如:

文字标签是左对齐还是右对齐?
确定按钮是放左边还是右边?
控件颗粒长度是整齐划一还是与输入预期一样错落有致?反馈内容怎么显示......等等

以上虽说都是细节部分,但是在设计表单时往往最不能忽略的就是这些细节,因为细节处理好的话往往可以提升用户在填写表单的效率,给用户带来不一样的用户体验。

★ 所以针对这些问题,我从【框架】>【细节】的逻辑与大家一起探讨「如何设计一份体验好的表单」。


表单拆分

在UX Collective,作者Taras Bakusevych 进行了详细的阐述,对表单的组成部分进行了详细的拆解与说明 ↓ ↓ ↓

e3561af6c68f767a62c171c6f50abd07.png

1、标签:标签文本主要是解释输入项的含义,一般不宜太长,需要简明扼要,快速让用户理解;还有一部分是告知用户哪些是必填项。

2、占位提示:直接展示在输入项中,采用弱提示文本对所需信息描述、示意,当用户输入信息时即消失。

3、 校验:对输入项进行验证,并给出反馈提示,如:用户未填写,格式错误、内容错误等

83abac3ce5f7610e3ae4433b174887eb.png
常见的校验类型

4、 基础组件:可交互输入的区域,是构成表单的核心内容,主要有:输入框、单(复)选框、上传、时间选择器、开关......

5、 提示:描述该输入项需要的输入类型,如:上传的文件类型

6、 按钮:用户完成输入后,点击按钮进行提交、进入下一步等,按钮一般是跟随的最后一个输入项后面,若输入项超出一屏显示,则按钮悬浮固定在底部;按钮“确定”放左、右统一即可,没必要过分纠结。


表单类型

看了很多文章,对表单类型的划分主要是:基础表单、分步表单、高级表单(分组表单)[1]

  • 基础表单:常见于输入项较少的表单场景,如:登录、注册。

caf569dde063e407764b97366237babf.png
如:登录
  • 分步表单:常用于输入项较多,业务本身具有流程化特性(如:转账)

为了提高用户填写效率,减少用户心理负担,将一个冗长或用户不熟悉的表单任务拆分成多个步骤,一步步指导用户完成。

分步表单可以缓解用户需要填写较多内容时候的抵触情绪,并且通过拆分步骤,聚焦于每次填写的内容,提升用户在不同模块间的浏览效率。

4e7aab4651b580cb8485f4fd9b0a9c68.png
来源:Ant Design Pro
  • 高级表单(分组表单):主要用于需要一次性输入、提交 大批量数据的场景。高级表单与分步表单有点类似,都是为了减轻用户填写压力,将填写内容进行分块。不同的点在于,分步表单的流程化明显,后一步填写的内容都是基于前一步来填写、是前一步反馈。

f1a45377fb0c4645a3f3a315a55fcfe9.png
如:站酷上传作品

但是以上说的基础表单、分步表单、高级表单都是基于业务需要而进行选择,但是实际在设计时,往往还需要考虑的是:这些表单应该是以什么承载结构展示?

是整页展示、弹窗展示、侧边栏展示?
表单内部布局方式,一定是平铺的一栏么,是否可以增加侧边目录?

这些都是设计师需要进行全盘考虑的问题,所以在设计表单的时候需要先确定这些框架,由外>内,层层深入,再对细节进行处理。所以接下来我会针对如何由外>内设计表单进行详细的陈述。

表单页设计步骤

在详细阐述如何设计表单页前,先明确下我对于表单页的划分 ↓ ↓ ↓

81c0cf2a475419013500a986637dd0e3.png
我将表单页大体划分成【页面框架】和【表单内容区】

这样划分是出于我对 AJAX之父Jesse James Garrett在2007年出版了一本名为《用户体验要素》的书,提出了从5个要素自下而上的建设用户体验,即:战略层、范围层、结构层、框架层、表现层,这种逐层的思考逻辑对于设计表单是十分必要的,因为在设计表单的时候,常常需要考虑这个表单页所需承载的业务诉求(战略上)基础上去做后面的优化体验,所以在设计表单的时候应:

  • 明确该表单的业务类型,因为不同的业务诉求的表单在设计中的展现形式会有不同,即“页面框架”会有不同(这也是我上面为何将表单页分成页面框架和表单内容区的原因)
  • 在确定页面框架后,就需要对表单需展示的内容进行明确的划分,如:表单的内容是否要展示流程进度?表单内容是否有不同层级的导航?确定了这些后,我们表单内容的大致布局框架就可以确定下来,我们才能进入下一步(内容区具体的陈列方式)的设计;
  • 表单内容区主要是对输入项的陈列方式,对齐方式,进行体验优化;
  • 最后对所有输入项进行统一整理,检查是否与用户预期一致?与其他输入项的关系是否清晰等。

整体而言可以分为以下四步:

bd082e5f800d3faab8e59f772104625e.png

STEP1:确定【页面框架】

这里得页面框架指的是承载着整个表单页的页面框架,即:整页式(新页面)、弹窗式、侧边栏式。因为其页面面积大小不一样,所以使用情境有所不同。[2]

  • 整页式:最常用方式,适用于绝大部分的表单,可以支持构建复杂的表单。
  • 弹窗式:通过小面积的弹窗进行轻量化的编辑,方便快速进行增、删、改、查;输入项较少,一般不会有滚动条。
  • 侧边栏式:与弹窗式相似,通过小面积的侧边栏进行编辑;可承载比弹窗更复杂一些的表单内容,可以有滚动条。

0f1b3d39a06dafc687a57f474c096f33.png

以上这些就是常见的表单页面框架,我们在考虑采用何种样式时需要综合以下几个因素考虑:

  • 内容多少 —— 内容较多不适合使用弹窗式
  • 与原页面关系强度 —— 需与原页面保留强关联建议使用弹窗式、侧边栏式
  • 表单内容区复杂程度 —— 一般高级表单、分组表单、分步骤表单、有表格聚合的表单、联动表单等都建议采用整页式的框架来展现。

STEP2:确定【表单内容区布局】

cad07ae72684794b985c7bd52b61235d.png

如上图所示,一个正常的表单内容区主要有:标题区、二级导航区、主内容区

  • 其中标题区是必须要有的,标题区可以让用户快速明白该表单是需要收集什么内容
  • 二级导航可以根据业务需要进行配置
  • 主内容区则是表单填写的主区域,通常我们直接将这个区域称之为“表单内容区”,该区域布局样式可以分为三种:

1、通栏式,即:在页面中居中显示,从上到下直接平铺控件颗粒。

2、左右式,即:在表单域内容区左边放置导航栏、或在右侧放置辅助信息栏(如:流程节点展示)。

3、左中右式,即:分别在表单域内容区左侧放置导航栏,右侧放置辅助信息栏。

b02a0c933ac85a9305100ce951b892e1.png

以上三种样式就是常见的表单内容区的布局,采用哪种布局,可以综合以下几个因素考虑:

  • 内容多少——如果内容很多导致页面很长,则可以考虑将内容分类,作为左侧导航栏,采用左右式布局。
  • 内容类型——导航作用内容必须放置左侧(有些分步骤的表单也会将步骤条放置左侧),而辅助信息的内容建议放在右侧(因为人眼浏览习惯都是从 左 > 右,所以信息重要度建议按照该视线路径放置)

★ STEP3:确定【表单内容排列方式】

在该步骤中,主要确定表单内容区控件颗粒的排列方式,

单列布局 or 多列布局。
  • 在输入项不多的情况下,建议采用单列布局,因为单列布局,用户填写的路径就是从上>下的一条直线,十分符合用户的视觉动线,能够提高用户浏览与填写的效率。
  • 多列布局的表单会导致用户的视觉路径变长,用户需以 Z 字形的视觉动线扫描表单,会提高浏览与填写的效率,并且多列表单容易造成用户填写时的混乱,易填错,体验差。

但是有时部分业务诉求和某些特性的场景要求,会需要在有限的空间上放入更多的控件颗粒来收集用户的信息,这时就不得不使用多列布局的样式,因为多列能够省纵向空间。

so 根据单列布局、多列布局的优劣势,结合实际业务需要来选择:

【单列布局】

优:视觉路径清晰,填写效率高,体验好;

劣:占用纵向空间。

【多列布局】

优:省空间,能够放置更多的控件颗粒;

劣:视觉路径模糊,填写成本高,填写易出错。

7b8318e1e01c0b3c8c36abc19886853a.png

在这个环节中,除了需要考虑单列式布局还是多列式布局,还有一个也是需要全盘考虑的——

【标签的对齐方式】

在设计时,到底是采用左对齐、右对齐还是顶部对齐呢?

6f0037ba2cdab2e659945c0d8ce150e1.png

Matteo Penzo《Label Placement in Forms》文章中,有对标签不同的方式方式优劣势进行了说明。[3][4]

532e7a7b6b7f4d24170d666e26796178.png

后续在这块纠结的时候,则可以对照上面表格进行评估了,其中详细原理你也可以点击下方链接进行查看:

UX Collective​uxdesign.cc

STEP4:确定【表单内容颗粒】

最后一步只需要按照收集信息类型的需要,选择正确的控件颗粒,如:如果是要收集用户购买数量,则可以直接使用“数字步进器”、“输入框”。

在选用控件颗粒时,需要注意的是:

  • 选用的控件颗粒应是用户可以最快输入的,能点击完成就别输入完成
  • 表单中同个信息类型的控件颗粒应统一
  • 指意不明确的表单应搭配占位提示,占位提示应是完整的陈述句

cceb8d506adebbc7d41a9b39c7953c31.png
  • 重要信息的输入项应该有错误提示校验,这种一般用于错误率较高的情况,避免用户反复填写。如:在登录注册时,我们填写手机号如果不满11位数,就会报错。
  • 特定的输入型颗粒控件,需要根据输入信息的特殊性给与格式的提示与限制,如:邮箱 @http://qq.com,这样有助于帮助用户提前感知,减少表单填写错误。

29c610353056424698f4941b12c7bc36.png
  • 表单颗粒的宽度应该 暗示填写内容的长度,与输入预期成正比,在Ant Design 4.0 系列分享的文章[5]分析结论是:
错落有致的排版比整齐划一更舒适,因为在视觉上我们更容易将下方有图的空间和内容视为一个和谐的整体,但左图过度的对齐导致暗示隐性的截断,我们会感觉表单列右侧空间缺了一大块。

085d1fb0ea0664f7157806554851dd0b.png

写在最后

本篇文章从表单所在的页面形式 > 表单框架 > 表单内容区 逐层对表单进行剥离拆解,帮助大家更加全面的认知表单,并总结了日常工作中设计师常常会遇到的表单类型和布局,设计师可结合文章中给出的建议参考并灵活应用。

希望能够通过这边文章给到大家更多的启发。文章中如果有不严谨、错误的地方希望大家给与指正。最后,作为一名刚刚将自己工作内容进行沉淀并分享给大家的设计师,希望大家可以多多点赞评论鼓励下(狗头保命)

参考

  1. ^表单类型: https://preview.pro.ant.design/form/advanced-form
  2. ^页面框架: https://www.uisdc.com/structured-approach-2
  3. ^标签对齐选择依据: https://www.uxmatters.com/mt/archives/2006/07/label-placement-in-forms.php
  4. ^标签对齐优劣势: https://www.uisdc.com/middle-form#
  5. ^整齐划一?不如错落有致。| Ant Design 4.0 系列分享: https://zhuanlan.zhihu.com/p/110096160

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4)lsof linux命令,***Linux命令实时监测系统(top,htop,iotop,lsof,tcpdump,netstat,vmstat,iostat)...

摘要:本文总结了8个非常实用的Linux命令行性能监测工具,这些命令支持所有的Linux系统,不仅可以用于监控系统,还可以发现导致性能问题的原因所在。对每个系统/网络管理员来说,每天监测Linux系统性能是一项非常艰巨的任务…

算法竞赛入门经典 第七章 总结

目录: 7.1 简单枚举7.2 枚举排列7.3 子集生成 7.1 简单枚举 例题7-1 除法(Division, UVa 725) 输入正整数n,按从小到大的顺序输出所有形如abcde/fghij n的表达式,其中a~j恰好 为数字0&#xff5e…

线性表总结

线性表及其实现多项式的表示什么是线性表线性表的抽象数据类型描述线性表的顺序存储实现线性表的链式存储实现 线性表及其实现 多项式的表示 [例] 一元多项式及其运算 一元多项式 : 主要运算:多项式相加、相减、相乘等 【分析】如何表示多项式?…

mix2s android p功能,已升安卓P!网友:MIX2S才是亲儿子

原标题:已升安卓P!网友:MIX2S才是亲儿子一直以来,小米在手机系统更新上都有着非常明显的优势,MIUI经过了多年的更新迭代,如今已经达到了非常不错的易用性,而且流畅度方面的表现更是优秀。如今小…

堆栈总结

堆栈什么是堆栈堆栈的抽象数据类型描述栈的顺序存储实现 堆栈 什么是堆栈 计算机如何进行表达式求值? 算术表达式56/2-3*4。 正确理解: 56/2-3*4 53-3*4 8-3*4 8-12 -4 由两类对象构成的: 运算数,如2、3、4 运算符号…

harmonyos公测招募,nova为主 HarmonyOS 2.0开发者Beta公测再招募

原标题:nova为主 HarmonyOS 2.0开发者Beta公测再招募HarmonyOS 2.0开发者Beta公测招募将开启第二期,本次公测活动主要针对的机型是华为nova系列。活动报名时间为5月9日-5月17日。【PChome手机频道资讯报道】华为方面在4月份开启了HarmonyOS 2.0开发者Bet…

队列总结

什么是队列 队列(Queue):具有一定操作约束的线性表 插入和删除操作:只能在一端插入,而在另一端删除 数据插入:入队列(AddQ) 数据删除:出队列(DeleteQ) 先来先服务 先…

D P- 免费馅饼

题目 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以ga…

一加桌面3.0 android8,一加手机XRemix6.0安卓8.1.0Beta2.0定制本地化增强适配归属农历等...

制作者:moonlight-roms基于版本:remix最新安卓8.1.0代码适合机型:一加手机X双网版/全网通版/E1001/E1003等/onyx注意事项:1.开机后语言设置:Settings-system-languageandinput-添加一个中文需要并拖动到第一行设置为默…

震惊!Fibonacci Again

题目 There are another kind of Fibonacci numbers: F(0) 7, F(1) 11, F(n) F(n-1) F(n-2) (n>2). Input Input consists of a sequence of lines, each containing an integer n. (n < 1,000,000). Output Print the word “yes” if 3 divide evenly into …

华为鸿蒙手机和电视通话,鸿蒙智慧屏首秀:逾10万人预定,电视视频通话功能强大...

原标题&#xff1a;鸿蒙智慧屏首秀&#xff1a;逾10万人预定&#xff0c;电视视频通话功能强大上周五&#xff0c;大家期待已经的华为开发者大会正式召开&#xff0c;华为鸿蒙系统在这一天对外发布。历时数年&#xff0c;经过几千人的研发&#xff0c;终于正式落地。曾经&#…

两文本一图片android,Android富文本编辑器(二):图文混排以及图片上传处理

对于一个富文本编辑器来说&#xff0c;图文混排是最基本的功能。而从上一篇文章中我们知道图文混排需要使用ImageSpan。下面这段代码摘自我的RichEditText源码&#xff1a;/*** 添加图片* param filePath 图片文件路径*/public void addImage(String filePath) {SpannableStrin…

震惊! Rightmost Digit 快速幂解决

题目 Given a positive integer N, you should output the most right digit of N^N. Input The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. Each test case conta…

android handler同步,android解决:使用多线程和Handler同步更新UI

如果运行时&#xff0c;可以看到滚动条由条慢慢变短&#xff0c;则说明程序成功了。截图如下&#xff0c;建议选择大点的文件做测试。main.xmlxmlns:android"http://schemas.android.com/apk/res/android"android:layout_height"wrap_content" android:id&…

html玫瑰花效果代码,html5渲染3D玫瑰花情人节礼物js特效代码

情人节马上就要到来了&#xff0c;这里给程序员前端设计师们献上一个&#xff0c;html5渲染而成的3D玫瑰花js效果&#xff0c;可以作为虚拟的情人节礼物送给自己的爱人。支持html5的浏览器查看。查看演示下载资源&#xff1a;16次 下载资源下载积分&#xff1a;20积分情人节玫瑰…

html 页面怎么加载富文本,UILabel加载html富文本

本文主要解决html标签之外文本属性设置当APP里面有搜索的需求的时候&#xff0c;产品可能会要求关键字显示特殊颜色或者字体。其中一种可能性是服务器返回的数据是带有html标签的字符串&#xff0c;那么该怎么解决&#xff1f;当标签之外的其他字体也需要设置不同格式&#xff…

python 打印皮卡丘_用python打印你的宠物小精灵吧

我们来通过一个有趣的例子开始编写我们的第一个python代码。本文涉及的python基础语法为&#xff1a;print输出函数&#xff0c;赋值&#xff0c;字符串print()print()是python的一个内置函数&#xff0c;用于打印输出&#xff0c;是最常见的一个函数之一。有些朋友可能对于打印…

360浏览器查看html文件在哪里,360浏览器8菜单栏怎么弄出来?如何查看网站源代码...

今天想查看一个页面的源代码&#xff0c;没想到这个页面竟然禁止了鼠标右键功能&#xff0c;所以无法通过鼠标右键选择“查看源代码”来查看。然后就想通过 360 浏览器的“查看源代码”按钮进行查看&#xff0c;没想到找了半天都找不到这个按钮&#xff0c;最后只能通过查看源代…

判断html()中有长度,VBS 字符串长度判断的问题

对于给你一个字符串你应该怎样判断他的字符串长度&#xff0c;试举一些典型的例子C语言——字符串长度的计算方法提示&#xff1a;(1)计算字符串长度时关键是要注意辨认转义字符&#xff1b;(2)一个转义字符总是以反斜杠开始&#xff0c;再加一个其他字符组成。所以&#xff0c…

计算机专业后悔么,王言匀

《中华独特疗法大成》分方法和治疗两篇。方法篇依据用药与否&#xff0c;分为药物疗法和非药物疗法两章&#xff0c;药物疗法按照给药途径分为内服法和外用法两节&#xff1b;非药物疗法根据施术手段分为针灸、推拿、气功及其他4节。这些章节介绍了273种治疗方法的基本内容、适…