web设计中的网页表单关于编码设计的小技巧

原文地址: http://www.noupe.com/design/tips-for-coding-and-designing-usable-web-forms.html

备注: 关于label和tag,在中文中都翻译成标签,而下文中出现的标签,都是对label的翻译,比如"用户名"+输入框, 这里的"用户名"项在英文中是label,约定翻译为标签

页面表单已经是web设计中讨论最多的元素,已经超过10年了.我们无法避免.Call-to-action(一般翻译为"行动呼吁","行动号召",但是都觉得不理想.译者注)的方式通常会将用户引导到表单页;付费需要使用表单;用户注册或订阅需要使用表单-表单的使用是不会停止的.

尽管在HTML中,把表单拼凑到一块相当容易,但是对于可用的,友好的表单来说,编码,制作样式和设计是很难的.在网站的转变中,因为在表单网站的成功转化率中扮演很重要的角色,下面的小贴士和文章末尾处提供的源码,应该会对制作和编码页面表单的开发者提供有价值的信息.

两列 VS 一列

这个取决于表单的内容,不过当表单内容相当简单时,通常尽量避免两列布局.

下面是一个很好的简单表单的例子,它将每个标签(label)都放到相关表单元素的上方

这种表单布局的好处有哪些,仅仅是为了反对两列布局?首先,表单的元素具有更大的空间,可以满足今后对于文案的修改.两列布局的表单在这点上会有限制,甚至可能需要重构整个表单部分才能满足调整的需求.另外一个好处就是看上去不杂乱,在每个标签部分不会有大量的空白,所以很容易阅读并且很容易将标签与输入框联系起来.另外,每个成对的标签/输入框的背景色可以让表单从视觉上看更吸引人.

作为对比,让我们看看下面这个两列布局的表单

尤其是因为左对齐的文字和不明显的颜色,这个表单不具备上一个例子中那种干净的视觉效果.事实上,在标签和输入框之间的垂直空白是多少让人的注意力分散,会让人有很多个部分,而实际上一个简单的表单在视觉上应该表现的像一个整体.

但是使用两列布局来完成一个清晰的,有条理的效果也不是不可能的,正如下面展示的例子Chapters Indigo Books

清晰有条理的两列布局表单

因此,尽管表单的布局没有明确的规定,但是仍存在有效的原则:包括简单的表单避免使用两列布局;如果使用两列布局则应该让标签右对齐.

让交验的反馈信息在一行中显示

最近Luke Wroblewski在A List Apart中写了一篇关于表单交验的反馈信息放到一行显示的文章.直接引用原文如下

当使用交验信息显示在一行时,我们的测试者(完成的)更快,成功率更高,犯错更少,而且更满意

jQuery Inline Form Validation, Because Validation is a Mess这篇教程一步一步的介绍了如何使用jQuery在信息较多的表单中将反馈信息显示在一行.

另外一篇文章:Really Easy Field Validation

Dexagogo提供了一个可以将你的表单交验信息显示在一行的简单的脚本.演示中的例子不是最好的,但是你当然可以按照你需要的来自定义.脚本中使用了Scriptaculous来实现的渐入渐出的效果.

组织有关联的输入框

在一个较长的表单中,为了增加可用性,你可能会受到一些限制,但是将关联的输入框组织到一起,将表单分割并用可控的视觉化组件表现出来,可以使表单不那么吓人.这样,表单可以让人感觉更容易填写,即使填写它可能跟填写没有组织的表单花费的时间一样.

为了将关联的表单组织起来,使用<fieldset>和可选<legend>元素,正如下面的代码一样

<form id="form" action="register.php" method="post"> <fieldset> <legend>Basic Info</legend> <div> <label for="name">Name:</label> <input type="text" name="name" id="name" /> </div> <label for="password">Password:</label> <input type="text" name="password" id="password" /> <div> <label for="password-confirm">Confirm Password:</label> <input type="text" name="password-confirm" id="password-confirm" /> </div> </fieldset> <fieldset> <legend>Address</legend> <label for="address">Address:</label> <input type="text" name="address" id="address" /> <label for="address2">Address (cont"d):</label> <input type="text" name="address2" id="address2" /> <label for="zip">Zip/Postal:</label> <input type="text" name="zip" id="zip" /> <label for="city">City:</label> <input type="text" name="city" id="city" /> <label for="country">Country:</label> <input type="text" name="country" id="country" /> </fieldset></form>

<fieldset>默认会带边框,不过可以修改,通常会使用CSS来去掉.下面是单独表单一个例子,它使用<fieldset>和<legend>分割成两个部分

Cosmicsoda Registration Form

不幸的是,<fieldset>的边框在不同的浏览器中表现不一样,所以一般最好的方法通过css去掉并且通过其他的方式建立自定义的边框.这也会影响<legend>的效果,因此现在很少看见使用<fieldset>和<legend>和两个HTML元素.但是<fieldset>仍然可以用来组织元素,同时通过自定义边框和标题来实现基础的效果.<fieldset>和<legend>元素对表单的易用性还是有额外的帮助的.

必填项的明确标识

表单中通常都会使用与其他文字颜色不一样的星号(*)来表示必填项,这样必填项是较突出的.尽管现在大多数网站虽然包含(必填项)标识,但是其中的一些并没有合理的使用.

关于星号的解释说明文字应该直接放到表单的上面,所以用户在开始填写之前就能看见.有些网站将星号的解释文字放到表单的下方,多少看上去有点像脚注.下面的Elderluxe contact page例子中,星号解释文字的放置位置就很不好.

上面的例子中有两个问题: 星号的颜色和其他文字一样;解释文字放在了表单的底部.在大部分情况下,单独放一个星号就够了,无需解释的,但是如果你的目标用户不是电脑使用者(computer-savvy),你真的需要在表单的上面加上对于星号的解释.

下面这个来自Office Depot’s registration page的例子展示了将星号的解释文字合理的放置

尽管上面的这个例子也有一些问题(比如标签文字左对齐,字体过小,留白使用的太少),但是它很清晰的标明必填项,并且在用户填写表单之间就解释了星号的含义.这是这个例子中最重要的,前三项不是必填的,因此用户可以很安全的略过它们.

更精美的复选框,单选框,按钮和下拉菜单

表单可以看上去很无趣,尤其是那些下拉菜单,单选框,复选框的样式被大多数浏览器限制,也无法使用CSS单独定制那些元素样式,让各个浏览器显示都一样的效果.幸运的是,有许多JavaScript插件和代码可以允许开发者来使用跨浏览器的,更精美的表单元素.

jQuery Checkbox支持你在表单中加入自定义的复选框和单选框.在这里我没有很特别的在意单选按钮的外观(它们看上去也一点都不像单选框),不过它确实是个可选项.

jQuery Image Combobox是一个完整支持自定义图片(skinnable)的下拉菜单,可以替代浏览器中原有的常用的-丑陋的下拉菜单

Giva Labs mcDropdown jQuery Plug-in是一个直观的,支持键盘的,更容易替代传统的下拉菜单,同时还允许数据嵌套.

当输入框获得焦点时显示提示

复杂的表单一般具有很多不同的输入框,如果显示一些帮助文字,可以让用户填起来更容易.当然,你不想让用户被一个或更多的解释表单文字所湮没。

通过简单的改变,你可以写个JavaScript脚本(或者使用可定制的插件),用类似传统提示的样式显示一个消息,来解释可能产生疑惑的表单元素,或者那种需要要求输入的内容是特殊格式的输入框(比如,只允许用字母和数字组成,并且至少6个字符的用户名)

jQuery Input Floating Hint Box是一个简单的插件,可以在输入框获得焦点时,显示完全可以自定义的浮出提示窗.

DHTML Goodies Form Field Tooltip是另一个对表单中输入内容的交验工具.它会根据表单输入框中的title属性来显示一段帮助文字.

充分的留白

正像前面提到过的,如果表单的元素没有显示以很清晰,友好的方式显示,那么会看上去很丑而且混乱.通常我们认为在网站设计中对留白的使用原则,同样适用于表单,甚至可以一直应用到最小的细节中.

你可以通过以下的方式来改进表单的设计: 在输入框周围增加适当的留白,给元素更大或者更好用的尺寸,或者也可以通过调整CSS中的padding属性来实现输入框内的留白.例如,试着在下面的两个输入框输入些文字.

只是通过调整padding的和尺寸,第二个输入框就有更好用的感觉.当多个文字输入框出现在同一个表单中,这样会让人在整体感觉上产生很大的不同,即使从技术上讲在用户填写表单花费的时间长度上,它并没有产生很大的不同.

同时,这样也能让你在输入框中看到更多字符.尤其是名字输入框,应该为了那些较长的名字提供更大的可见空间.超出的字符,会开始将其他的字符挤出视线,所以最好是有足够的空间来满足那些较长名字的用户,让他们可以更容易的认出错误.通过下面的输入框可以看到较长的名字是如何被截断的.

让你的表单更友好

关于易理解的表单的这个主题可以很容易构成一整篇文章或者更多,但是这有一些小贴士可以确保你的表单更友好并且对于不同的用户来说都可用.

  • 在输入框中都使用title属性,来帮助那些使用屏幕阅读器的用户
  • 如果标签没有围绕在所关联的输入框时,使用for属性来匹配关联的输入框的id.(这样当用户点击label时,焦点也会置入到输入框内.译者注)
  • 通过给每个元素使用tabindex属性来组成一个tab队列(这样键盘使用tab键可以依次切换,译者注)
  • 对于tab队列,使用更大"步长"来增加数字(如使用"10,20,30..."来替代"1,2,3..."),这样将来需要增加时不需要重写所有的tabindex属性
  • 对于复选框和单选框,将标签(label)放到关联元素的后面这样屏幕阅读者访问时,会先读到标签,然后是"复选框"或者"单选框"
  • 使用<optgroup>来组织<select>
  • 使用accesskey属性来支持键盘快捷键

延伸阅读

  • Creating Accessible Forms
  • Beautiful Forms – Design, Style, & make it work with PHP & Ajax
  • HTML Forms and Input on W3Schools
  • 25 Web Form Optimization Tips
  • Accessible Forms
  • Web Form Design: Modern Solutions and Creative Ideas

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索表单
, ble
, 输入
, 元素
, 文字
, 星号
, 一个
, 自定义表单标签
, 某两列字符
, 两个星号
, 必填项
, jquery文字截断
一行两列显示
form表单提交编码格式、form表单设置编码、form表单提交设置编码、form表单编码、form表单编码格式,以便于您获取更多的相关知识。

时间: 2024-08-07 03:34:55

web设计中的网页表单关于编码设计的小技巧的相关文章

测试网页表单的交互设计

作为网页表单交互设计,有时候网页设计师本身要进行一些极端的测试,这就包括填写和思考一些普通用户很难想去做的一些动作.比如在价格输入框中填写英文字母,什么都不输入的时候按提交按钮等等. 一般作为测试者,我们都要尽可能的把一切可能发生的用户行为考虑到,即便这种可能性出现的概率很低. 以下我们来具体分析啊下网页表单的交互设计中的极限测试以及对淘宝等网站进行观察,看看这些大网站对于表单交互测试做到了什么程度! 如图: 1. 你会在search bar什么都不输入的情况下就按search button吗?

使用ping命令检测网速和网络连通状况的小技巧

  1.我们可以使用鼠标依次点击"开始-运行",在打开的运行窗口中我们输入"cmd"按下回车键打开命令提示窗口;如下图所示: 2.接着我们可以在dos窗口中测试内网络是否连通,假如其它机器的IP是192.168.1.10,我们就可以用ping 192.168.1.102 -t,-t是一直ping;如下图所示: 3.如果我们想要检测网速,那么我们可以在dos窗口中输入"ping -t";如下图所示: 到此,小编关于使用ping命令检测网速和网络连通

C#中使用反射遍历一个对象属性及值的小技巧

  这篇文章主要介绍了C#中使用反射遍历一个对象属性及值的小技巧,这在很时候应该都非常有用,本文直接给出实例代码,需要的朋友可以参考下 总结: 对应某个类的实例化的对象tc, 遍历获取所有属性(子成员)的方法(采用反射): 代码如下: Type t = tc.GetType();//获得该类的Type //再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了 foreach (PropertyInfo pi in t.GetProperti

网页设计中最有灵感的幻灯效果设计

中文原文:66个网页设计中完美的幻灯展示实例译自:66 Examples of Perfect SlideShow Presentation in Web Design请尊重版权,转载请注明出处,多谢! 我最近注意到的一个非常有趣的趋势是在幻灯演示中展现关键信息.现代设计师喜欢尝试并观察用户如何与作品进行交互.尽管幻灯并不是一个普遍的趋势但是依然作为新的设计风格而不断涌现,而且越来越多的设计师注意到它并在他们的作品中使用,这种新的趋势开始崭露头角. 在本文中,你将发现各种高度创意的.漂亮的.独特

JavaScript获取网页表单提交方式的方法_javascript技巧

本文实例讲述了JavaScript获取网页表单提交方式的方法.分享给大家供大家参考.具体如下: JavaScript获取网页表单的提交方式是get还是post,获取提交方式可以通过表单的method属性获得 <!DOCTYPE html> <html> <body> <form id="frm1" action="form_action.asp" method="get"> First name:

网页设计中网站背景的创意风格与设计趋势

正确的背景风格可以为整个网站确定基调.我们搜集了一批使用大幅图像.明亮颜色或出众图案来作为背景的优秀网站,希望从中探寻当下网站的流行设计风格. 什么样的背景最适合你的网站,这并没有一定之规,但确实有一些共同的要素: 互联网背景的内容应该有目的性. 背景应该与你的品牌风格一致. 背景之上的文字内容应该易于阅读(无论是颜色.反差还是尺寸大小.) 背景的主题在整个网站内应该连贯一致. 背景应该能很快下载并且不会让你的网站变得缓慢甚至卡死. 现在的流行趋势是什么? 就像服装和发型会变,网页设计的风格也在

网页设计中网页背景的创意风格与设计趋势

正确的背景风格可以为整个网站确定基调.我们搜集了一批使用大幅图像.明亮颜色或出众图案来作为背景的优秀网站,希望从中探寻当下网站的流行设计风格. 什么样的背景最适合你的网站,这并没有一定之规,但确实有一些共同的要素: 互联网背景的内容应该有目的性. 背景应该与你的品牌风格一致. 背景之上的文字内容应该易于阅读(无论是颜色.反差还是尺寸大小.) 背景的主题在整个网站内应该连贯一致. 背景应该能很快下载并且不会让你的网站变得缓慢甚至卡死. 现在的流行趋势是什么? 就像服装和发型会变,网页设计的风格也在

JavaScript获取网页表单action属性的方法_javascript技巧

本文实例讲述了JavaScript获取网页表单action属性的方法.分享给大家供大家参考.具体如下: JavaScript获取网页表单的action属性,即要提交到的url地址,有时候需要提交到当前页面,则可能会设置action为空 <!DOCTYPE html> <html> <body> <form id="frm1" action="jb51.php"> First name: <input type=&

用户体验设计实例分析:网页表单设计

原文:http://visitmix.com/Articles/Web-Forms-for-People 作者:Luke Wroblewski 译者:江力   随着网络的发展,人们通过各种方式使用它.今天,网络购物,跟朋友或者不认识的人聊天,管理银行账户,以及一些日常应用,共享照片或视频,等等.事实上,只要能在线使用的应用基本上都已经有了. 虽然这些多样化的应用丰富了互联网,但这些任务的完成还需要一些步骤.不管是在线交易验证.评论新文章,还是管理某个应用,WEB表单总会出现在人们的视线中. 为什