网页常见可用性错误——布局外观错误

 更新时间:2016年9月20日 19:05  点击:2247

  1 布局、外观错误

  1.1 页面宽度

  1.1.1 页面内容宽度选择不当

  问题

  设计页面宽度时不考虑使用800*600分辨率的用户

  分析

  根据W3Counter在2006年7月9日发布的全球Web调查显示,使用800*600分辨率的用户仍占11%,所以在设计页面宽度时,要照顾这部分用户。

  游戏站的用户大多是游戏玩家,他们中间绝大多数人的浏览器分辨率是1024*768或更高的分辨率,所以游戏专题为了获得更好的效果,可以在1024*768分辨率下设计页面宽度,一般为900~1000像素宽。但不排除其中也有一部分800*600分辨率的用户,为了保证这些用户能在第一屏获得更好的效果,要把主要内容放在页面左侧。

  公司首页、毒霸、WPS、词霸等站,应尽量保证800*600分辨率下不出现横向滚动条,即页面宽度为公司常用的760像素宽。

  除了固定页面的宽度,设置页面宽度的像素值外,还可以将页面宽度设为100%,以保证各个分辨率下的用户都不出现横向滚动条。对于信息量比较大的页面建议使用100%宽度。但100%宽度的页面会增加宽屏用户浏览网页时视线移动的距离,可以用Javascript控制这类页面的宽度,给它限定一个最大绝对值。

  案例

  神州学习网,面向的用户中有很多是大学生用户,目前大学里800*600的显示器还是占不小的比例的。而这个网站采用1024下的页面宽度,显然会失去一部分用户。毕竟类似的学习网站还有很多。

  我们政府的网站,面向的用户是全国人民,不应该采用1024分辨率下的设计宽度。

  1.1.2 页面内容宽度不一致

  问题

  页面中的一部分内容宽度超出主体内容的宽度

< 网页设计伴随着网络的快速发展而快速兴起,作为上网的主要依托,由于人们使用网络的频繁而变得非常的重要。网页讲究的是排版布局,其功能主要就是提供一种形式给每个上网者,让他们能够了解网站提供的信息。

  从网络的发展来看,网页设计从无到有,从低级到高级,是基于技术的原因而受到客观的限制的,因为受传输带宽的限制,最早的网页是纯字母和数字的,没有图片和声音更别说是动画了,只能将占用空间很小的数字和字母来进行传输。

  由此看来网页最初就是在功能性的基础之上发展起来的。到今天同样上网也离不开使用它的功能,所以网页的审美就首先要考虑其功能的要素(例如很多国外的大公司的网站也是这样做的)。那么从功能出发来看待网页设计,我们就必须考虑,使用者如何从网页中得到功能,如何更好的得到功能。这就需要站在使用者的角度来看待网页设计,才能使自己做出的网页受欢迎,从而达到基本的目的。有的网页设计师说:我是设计师,我站得比普通人高,欣赏水平也比他们高,应该引导潮流,应该引导他们学会欣赏美的网页。作为设计师引导潮流没有错,但是不应该采用居高临下的方式,而是要贴近自己的使用对象,想他们所想,急他们所急,方便他们的使用,适时的将自己的设计风格融入到作品中去,接受他们的检验,只有经得起考验的设计才是好的设计。而不是所谓的阳春白雪,成为孤家寡人,不适用。作为设计师来说,就是要把自己的网页做得美一些(基于功能性的)。

  谈到美,网页这种特殊环境下的美于传统的艺术上的审美有着明显的区别,因为一般的艺术上的美是海阔天空,无所顾忌的,只要符合人们的欣赏的习惯,能够在欣赏者的心里产生共鸣就是美的;而网页的布局上的审美却要受到很多的限制,当然它也有优于传统艺术的地方,最明显的就是它的交互性和更新速度的快捷,纯艺术很大程度上是作者的自我宣泄,但是网页设计直接面对的是大量用户,随时都会反馈回来对网页的批评建议等,可以根据实际情况进行修改,比如在建站时考虑不周到的地方,设计时没有得到重视的地方,可以根据要求进行调整。同样不损整体效果,却可以使使用者用起来更加的方便。这个过程可以在很短的时间里完成。同时网页能融合文字、图片、声音、动画于一身。这是传统艺术所达不到的。当然最根本的在使用方面就限制了它不能够随意的挥洒自如,任设计师自由的发挥。以下针对网络环境下的审美。

  首先:要考虑上网者的环境,通常可见的情况是:上网者眼睛盯着一个冷冰冰的电脑屏幕,手移动鼠标,保持一定的姿势,而且一般是连续很长的时间。在这种情况下,假如连接的网站的网页做得很差,不考虑排版布局的形式美的要素,一味的以刻板的文字或者是图片来充斥这个页面,那么使用者看久了就会厌倦,甚至讨厌。同样在网络世界里,五花八门,涉及到各方面的内容,使用者通常是打开很多的窗口,在一种纷繁复杂的情况下接受信息。这样假如他们浏览的网页是设计得又是特别花哨,图片、文字、动画等等堆砌的极为杂乱,那么更加剧了这种心理上的厌烦感,这种网页能算得上美吗?所以从使用环境里的功能的因素来考虑美才是最根本的。

其次:考虑使用对象本身也是网页审美的一个重要方面,网页设计都是为每个具体的网站的做宣传,那么不考虑对象就如同闭门造车,这样会造成其根本的功能的损失,使使用者浏览起来困难。例如一个儿童网站,设计得如同一些新闻专题的网页一样,纯粹是文字。那么使自己的使用对象-儿童在浏览该网站的时候毫无兴趣,阻碍了网站的基本的目的,因为该网站的目的就是要使更多的儿童来光临这个网站,从而扩大网站影响。从这个功能层面上来理解,设计的美是同使用对象分不开的。

  再者:网页设计的美其实是一个满足使用者需求的过程,能够使他们使用起来方便快捷,排除他们使用中的问题,这就是美的,这就是纯粹从功能上的要求出发的。就是最根本的功能被满足就是最根本的美。不是吗?假如我想上一个体育的网站了解一下当天的足球战报,那么我上网的目的性就是非常的明确,直接看足球的结果。那么考虑一下我的上网过程就是先敲入网址,到主页上,然后尽快的找到足球的栏目,再找到比分的链接。那么设计师如果考虑到上这个网站的很多人都非常想知道足球的比分,那么在主页上放上一个流动的临时更新的框,就可以使上站的使用者直接在主页上看到想要看的东西,这样快速而又方便的结果,其实质上是一个网页设计的成功的地方,这种网页就是美的,反之假如把网页设计得非常的“漂亮”(这里指的是纯粹的从艺术审美上的漂亮,满足一般的形式美的要求的,而不考虑使用环境的情况),但是把该链接做到不容易找到的地方,或者是由于满足“漂亮”的要求,增加了几级的链接,从而增加了使用者的不方便,这种网站也是不美的,至少它没有为自己的使用对象考虑,就是失败。   还有一个美的因素也不能不考虑,就是网站本身,其实也是功能来决定的,作为网站的目的就是要通过使用者的使用来得到体现,如何使更多的人来使用和使他们浏览过之后记住这个网站?也就是通过自己的设计使网站的形象得到提升,使网站的形象在每个使用者的心目中扎根。这是现在网页设计中普遍不受重视的,也许是还欠缺这种意识,才出现这种情况,有些网页做得很有味道,不管是用色还是布局的编排,都是非常的讲究,但是却没有注意到网站的本身的东西,例如网站的名称或者是网址没有得到强化,尽管使用了之后觉得好,但是第二次使用时却记不起是什么网站了,因为上网通常要看很多的网站,每一个都记录下来是非常不方便的,很多网友也不愿意这样做,再说收藏夹里收藏太多了也找起来来也不方便。还要定期不定期的进行整理,也挺麻烦

  在Nielsen的可用性工程里提到可用性的其中一个原则是Errors,记得刚开博客的时候也穷举了一些关于可用性方面的文章,里面将这个errors翻译成了“少错”,实际上我个人觉得(也有不少版本这么翻译)“容错”更为贴切。无论是客户端软件还是web软件,用户毕竟不是专业人员,他的操作必然不能按照程序员所设定的路线来走,那么很有可能就会发生错误,“少错”是一个很含糊的概念,怎样做到少错,如何才是少错呢?真正需要做的应该是“容错”,当用户发生错误时,系统要能做到给予正确友好的提示,帮助他完成操作流程以及目的。

  前阵子由于工作的需要,对于系统给予用户填写信息的反馈进行了一些肤浅的研究,主要以web注册页的操作体验为主,现整理出来与大家共同分享,也欢迎大家拍砖,以共同提高。第一次写所谓的“技术贴”,必然有很多不足,希望各位及时纠正,万分感谢。

  首先举一个失败的用户体验的例子,126邮箱注册,不过那是一个月以前了,今天本想截图贴上来的,结果登录发现已经改版了,不错,确实该改了,需要进步嘛!不过却不利于文章的描述了,看来我只能凭着自己的印象来写了,要是有什么偏差,见谅!

  原有的126邮箱注册页并不象现在将用户名的填写单独做为一页进行强调,当时所有的信息填写都在一页中,而且没有检测用户名的按钮,这就意味着用户在进行填写时必须完成所有的输入框才能得知自己所键入的用户名是否合法或是否可用。而且整个页面没有一点提示信息,实在让人费解。更郁闷的事,对于错误的提示采用的是弹出对话框,以上所有都大大降低了用户操作的效率。我简要模拟一下当时的过程:

  首先,我在用户名的输入框中键入一个特殊符号,为了节省时间更快的看到系统给予的反馈,我直接跳过了中间所有的信息填写,并点击注册,这时,系统弹出了一个对话框:

  

  这里的文字实在太为模糊,怎么就不合法了呢?那怎么样的用户名才是合法的?实在让人伤透脑筋。

  我重新输入了一个数字,系统又提示到:

  

  好,那我不用数字,我用字母总可以了吧,我输入“a”:

  

<

一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符组成的。在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

这里有一些可能会遇到的正则表达式示例:
JScript
 VBScript
 匹配
 
/^[ t]*$/
 "^[ t]*$"
 匹配一个空白行。
 
/d{2}-d{5}/
 "d{2}-d{5}"
 验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成。
 
/<(.*)>.*</1>/
 "<(.*)>.*</1>"
 匹配一个 HTML 标记。
 

下表是元字符及其在正则表达式上下文中的行为的一个完整列表:  字符
 描述
 

 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'n' 匹配一个换行符。序列 '\' 匹配 "" 而 "(" 则匹配 "("。
 
^
 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 'n' 或 'r' 之后的位置。
 
$
 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 'n' 或 'r' 之前的位置。
 
*
 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。 * 等价于{0,}。
 
+
 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
 
?
 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。
 
{n}
 n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
 
{n,}
 n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
 
{n,m}
 m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。刘, "o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
 
?
 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。
 
.
 匹配除 "n" 之外的任何单个字符。要匹配包括 'n' 在内的任何字符,请使用象 '[.n]' 的模式。
 
(pattern)
 匹配pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 '(' 或 ')'。
 
(?:pattern)
 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。
 
(?=pattern)
 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如, 'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

<

编写JS的时候,总会调用的网页上的控件,今天有心情,把获得网页上的控件方法写了下,有不足,请补充.
【总结】一般我喜欢使用:document.getElementById()和document.all().现在觉得document.all.*比较不错!
关于其更深一步的原理暂不清楚,希望有明白的人给个深入讲解的链接!!


本帖以获得页面的text文本为例,获得控件后为其赋值为"你好!"
【附一:方法大全】
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>获得网页控件的方法大全</title>
<script language="javascript">
 function AXzhz()
 { 
  //【AX为文本框的id,通过下面的方法对文本框赋内容】
 
  //【根据控件ID】
  document.getElementById("AX").value="你好!" ;
  //document.all("AX").value="你好!"; 
  //document.all.AX.value="你好!";
  //不成功 document.AX.value="你好!";
 
  //document.body.all("AX").value="你好!";
  //document.body.all.AX.value="你好!";
  //不成功 document.body.getElementById("AX").value="你好!";
 
  //formid.AX.value="你好!"; 
  //不成功 formid.getElementById("AX").value="你好!";
  //不成功 formid.all.getElementById("AX").value="你好!";
  //formid.all.AX.value="你好!";
  //formid.all("AX").value="你好!";
 
  //【根据控件name,返回的是一个数组集合,再通过下标获得控件】
  //document.getElementsByName("textfield")[0].value="你好!";
  //不成功 formid.all.getElementsByName("textfield")[0].value="你好!";
  //不成功 formid.getElementsByName("textfield")[0].value="你好!";
 
  //【根据标签,返回的是一个数组集合,严格来说是获得标签中的内容,估计用到的机会不是很多】 
  //document.getElementsByTagName("td")[1].innerHTML="你好!";   
 }
</script>
</head>
<body>
<form id="formid">
<table width="200" border="1">
<!--title是鼠标在上面的时候出现的提示-->
  <tr title="快啊快啊!!" onclick="AXzhz()">
    <td bgcolor="#FF9933">你点我啊!!<br>
 <INPUT TYPE="text"value="根据标签测试时使用,请仔细观察结果!">
 </td>  
  </tr>
  <tr>
  &nbs

<
[!--infotagslink--]

相关文章

  • Ecshop提示Only variables should be passed by reference in错误

    在安装好ecshop软件之后我们打开首页时提示Only variables should be passed by reference in错误了,碰到这个问题是什么原因呢?下面我们就一起来看看解决办法吧。...2016-11-25
  • 409错误是什么 http 409错误怎么解决

    409错误是什么?http 409错误怎么解决呢?不少站长在遇到这个错误代码之后都一筹莫展,本次一聚教程网为大家带来了详细的说明,快来看看吧。 409错误是什么: HTTP 40...2017-01-22
  • 414错误是什么 414错误怎么解决

    414错误是HTTP协议状态码中的一种,很多都还不知道414错误是什么,以及不知道怎么解决414错误,那么就来看看小编带来的介绍吧。 414错误是什么: HTTP 414错误,(Requ...2017-01-22
  • http 405错误是什么 http 405错误怎么解决

    http 405错误是什么?http 405错误怎么解决?相信很多站长都在找这两个问题的答案,本次小编为大家带来了详细的教程,快来看看吧。 405错误是什么: HTTP 405错误是H...2017-01-22
  • 401错误码代表什么 401错误解决办法

    401是HTTP状态码的一种,属于“请示错误”,表示请求可能出错,已妨碍了服务器对请求的处理。具体的401错误是指:未授权,请求要求进行身份验证。登录后,服务器可能会返回对页面...2017-01-22
  • http 402错误是什么 http 402简介

    http 402错误是什么?402错误较为少见,一般不轻易出现,下面小编就来告诉大家402错误是什么吧。 HTTP 402错误是HTTP状态码的一种,表示“要求付费”; 所求的...2017-01-22
  • 411错误是什么 411错误怎么解决

    411错误是HTTP协议状态码的一种,很多人都还不知道411错误是什么,本次一聚教程网将为大家进行解答,并且告诉大家411错误怎么解决。 411错误是什么: HTTP 411错误,(Lengt...2017-01-22
  • apache网站提示503错误解决办法

    Apache status 503 的原因大致有如下几种情况 : 1、 CPU 负载过高,服务器响应不过来,返回503 2、 系统连接数超限,超过MaxVhostClients的上限,返回503 3、 单IP连接数超限,超过M...2016-01-28
  • 404错误是什么 404错误怎么解决

    403错误是网站访问过程中,常见的错误提示。资源不可用,服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致,比如IIS或者apache设置了访问权限...2017-01-22
  • 403错误是什么 403错误怎么解决

    403错误是HTTP状态码的一种,属于“请示错误”,表示服务器拒绝请求。如果在搜索引擎尝试抓取您网站上的有效网页时显示此状态代码,那么,这可能是您的服务器或主机拒绝搜索...2017-01-22
  • 412错误是什么 412错误怎么解决

    412错误是什么?412错误怎么解决?本次一聚教程网将为大家带来详细的介绍,帮助大家全面了解412错误的意思以及解决412错误的方法。 412错误是什么: HTTP 412错误,(Precond...2017-01-22
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • 407错误是什么 407错误怎么解决

    407错误是什么?407错误怎么解决?不少站长都遇到过407错误,下面小编将告诉大家如何处理407错误。 407错误是什么: HTTP 407错误是HTTP协议状态码的一种,表示需要代...2017-01-22
  • 406错误是什么 406错误怎么解决

    HTTP 406错误是HTTP协议状态码的一种,表示无法使用请求的内容特性来响应请求的网页。一般是指客户端浏览器不接受所请求页面的 MIME 类型。 而MIME类型是在把输出...2017-01-22
  • 410错误是什么 http 410错误怎么解决

    410错误是HTTP协议状态码的一种,本次一聚教程网将为大家详细介绍HTTP 410错误是什么,以及410错误的解决办法。 410错误是什么: HTTP 410错误是HTTP协议状态码的...2017-01-22
  • HTTP 400错误是什么 HTTP 400错误怎么解决

    每当遇到http错误代码为400,代表客户端发起的请求不符合服务器对请求的某些限制,或者请求本身存在一定的错误,那么HTTP 400错误怎么解决呢?请看下文介绍。 目前400错...2017-01-22
  • PHP Fatal error: Cannot use object of type stdClass as array in错误

    下面一起来看看在php开发中碰到PHP Fatal error: Cannot use object of type stdClass as array in错误问题的解决办法吧。 普通的数组出现如下错误 代码...2016-11-25
  • C#窗体布局方式详解

    这篇文章主要介绍了C#窗体布局方式详解的相关资料,需要的朋友可以参考下...2020-06-25
  • PHP Curl出现403错误的解决办法

    自己用的小PHP应用,使用curl抓网页下来处理,为了穿墙方便,使用Privoxy作为代理,便于选择哪些网站使用proxy、哪些不用。但今天却遇到了奇怪的问题,访问google baidu这些网站居然都返回403错误,而访问其他的一些网站没事,如果...2014-05-31
  • C#新手常犯的错误汇总

    这篇文章主要介绍了C#新手常犯的错误汇总,对于经验丰富的C#程序员同样具有很好的参考借鉴价值,需要的朋友可以参考下...2020-06-25