标准建站之web设计与开发常见错误

web|标准|错误|设计

混淆文档类型(DOCTYPE)

  完全不写、写的不正确、或放错地方。我曾见过HTML 4.0 Transitional被用在XHTML网页和框架页中,还看到过在开头的<html>标签后写DOCTYPE声明和一些不完整的声明。
为什么?有两个原因。首先,文档声明是必须的,在W3C HTML 4.01 spec和W3C XHTML 1.0 spec里都有说明。第二,浏览器会根据指定的文档类型去显示和渲染网页。也就是“DOCTYPE切换(DOCTYPE switching)”。为了保持各个浏览器显示网页的一致性,特别是你用了CSS,你一定会希望浏览器使用它们“Standards compliance mode”。关于DOCTYPE切换,可以看看使用正确的DOCTYPE!和正确的文档类型声明,正确的布局方式。 

<span>癖

  样式化的一个常见方法就是把一段东西用<span>标签围起来,并且带一个class用来设置样式。我敢保证你经常可以看到诸如<span class="heading">和<span class="bodytext">的代码。
  为什么? 其实在很多情况下这完全没必要,这样做只会混乱标签并且没有什么语义。标题就用标题(h1~h6)标签,段落就用段落(P)标签,列表就用列表(UL, OL和DL)标签。然后再用CSS去样式化,如果需要的话,也可以加class和id属性。 

太多可视化思考 

  以为web就是WYSIWYG(所见即所得) – 一开始就想着这些东西该怎么表现的,而不是先去考虑逻辑结构上怎么样。 
  为什么? 虽然大部分网民都是视力正常的,但是还是有残疾人上网的。网民可能使用不同浏览器、不同系统、不同尺寸显示器和分辨率、不同的窗口大小、不同颜色标准和文字大小,所以你不应该把你的网页做成WYSIWYG。网页不是印刷品或者电视节目。要让你的设计弹性化。 

缺乏语义
 
  没有使用具有语义的标签。想当然的按照图形浏览器渲染的HTML样式去写代码,而不是参照这些标签的意义。 
  为什么?和上文提到的"<span>癖”比较接近,没有好好的利用现有的HTML标签来表达它应该表达的语义。没有语义化的HTML,为那些非可视化用户代理(UA)造成了理解上的困难。而且语义化的HTML很容易进行CSS样式化。
 
编码不一致 

  在服务器发送的默认编码是一种而文档里面又使用另外一种,这可能会造成浏览器乱码(不正常显示)。 
  为什么?因为你必须得保证所有你的访问者都能阅读你的内容。 

不正确的alt属性 

  没写或者写了没意义。在网络上可以看到非常多没有alt属性的<img>标签。没意义的alt属性倒是不如前者常见,比如“spacer GIF used to make the layout look good”,“带有阴影的蓝色原点”, 以及“JPEG图片,123 KB”。要记住,alt属性在<img>和<area>里是必须的。 
  为什么? 这是必须的,没有alt,任何图片中的信息就会被屏幕阅读器、文本浏览器、搜索引擎机器人忽略,或者用户关了图片显示就会显示为X。注意图片的alt的文字是要相关的,不要给装饰性的图片或者用来布局的图片加alt属性值,指定一个空值就可以了,如alt=""。 

不合法的id和class属性 

  在同一页面里使用了多次同一id,以及在id、class和CSS选择器中使用了非法字符。
  对于CSS来说 (CSS 2.1语法和基本数据类型):
  在CSS 2.1里,标示符(包括元素名、class和ID)只能由数字、字母、ISO 10646通用字符集U+00A1及更高、连接线("-")、下划线("_")组成,并且不能以数字开始。
  对于HTML (HTML基本数据类型):
  ID和NAME必须以大写或小写字母开始,随后可以接任意字母、数字、连接线("-")和下划线("_")、冒号(":")和分号(".")。
  为什么?遵循以上标准的浏览器可能不会按照你预期的现实。如果一个页面中有多个重用的id值,那么任何使用了该值的JS就可能会失效或者错误。 

浏览器探测 

  使用服务器端或客户端的脚本测试访问者的浏览器,然后发送或者执行特定浏览器的代码。这对于最新的浏览器、更新过的浏览器或者具备欺骗功能的UA(比如Opera默认伪装成IE)。 
  为什么?增加了不必要的麻烦,并且最终会失效。 

CSS缺少单位 

  长度值(水平和垂直的)需要单位,除非当该值为零时。不像在HTML里面,可以输入width="10"。在CSS里, 必须写成width:10px;(或者其他单位)。 
  为什么?在遵循规范的浏览器中会被忽略。 

浏览器特定的CSS 

  样式化滚动条、表达示和滤镜等,都只能在IE下工作。这也不合法。 
  为什么? 只在特定的浏览器里面正常。如果你真的必须使用IE特定的CSS,可以单独写一个CSS文件并且使用条件注释,或者保证只有IE能看到那些不合法的CSS。
 
JavaScript依赖症 

  网站整个依靠JavaScript。很多人都愿意使用不支持JS或者禁用JS的浏览器。当前的情况(W3Schools浏览器统计, TheCounter.com)表明至少有8%-10%的用户浏览器不支持JS。搜索引擎机器人对待JS也不是非常友好,虽然有报告说Google正在开发支持JS的机器人。如果你的站点需要开启JS才能导航,那别指望有一个很高的搜索引擎排名。 
  为什么?对搜索引擎不友好,难以提高排名。 

Flash依赖症 

  实际上并不是所有人都装了Flash Player插件。并且大部分搜索引擎机器人都不支持Flash(Google有报告称已经在尝试索引Flash文件,但是他们还是要求你的内容和导航写在HTML里),所以如果你整个网站或者导航部分是Flash的,你的网站一般就不会得到很高的PageRank。 
  为什么?搜索引擎不友好,但这并不是说你应该放弃Flash,只是你应该使用的比较有技巧。 
  JunChen注:为Flash建立搜索索引,可以参考flash 8 swf metadate应用。 

文字做成图 

  把文字做成图,又不提供更多提示信息。这不仅仅增长了访问者下载时间,也不利于访问者选择和复制文字,又不利于文字放大。 
  为什么?不亲切,增加下载时间,对搜索引擎不友好。 

不友好的表单 
  没有语义、难以使用的表单。要学会使用<label>标签,<fieldset>和<legend>标签,不要使用“Reset”按钮。 
  为什么?没有语义并且难以使用。阅读设计易用的表单,优秀、易用的表单,和重设和取消按钮,看如何设计友好和易用的标单。(JunChen注:使用Reset按钮会增加用户思考的时间,并且误按情况屡屡发生) 

过时的HTML 

  多层嵌套的表格,透明的spacer图片,<font>标签,表现层的标签。其实这个大家都已经知道了。 
为什么?增加复杂度,让整个页面代码臃肿冗余,不易理解,对搜索引擎不友好。 

一切向IE看齐 

  IE优先,做完了再看看其他浏览器里如何,有问题再调整。 
  为什么?浪费时间,并且这个习惯不好。IE会默认接受很多错误的代码,所谓“容错性”。而其实IE也接受良好结构的HTML,并且在其他浏览器里都正常,这也不会浪费很多时间。更多信息看IE真相。 

不合法的HTML属性 

  使用不推荐的属性或者只能在特定浏览器里生效的属性,诸如marginwidth,leftmargin,language,给<table>加height,给<img>加border等等。 
  为什么?不合法并且没必要。你可以使用CSS。对于<script>标签,使用 type,而不是language,来指明脚本语言(一般是JavaScript)。 

没有编码的“&” 

  很多URI带有变量和没有编码的“&”符号。这不正确,并且可能会造成很多问题。 “&”符号必须要写成&。 
  为什么?在“&”符号和验证一文中可以找到解释和一个会引起错误的例子。 

框架 

  使用框架来分割浏览器窗口并且加载数个独立的文件。 
  为什么?首先我要说的是,框架可能比较实用,前提是你正确的使用了,比如说在内联网和一些web应用程序中。而对于一个网站来说,框架有很多易用性和可用性方面的问题。比如加入收藏夹的问题、打印问题以及链接问题,并且对搜索引擎不友好。因为机器人在多个框架页里面工作比较有问题。 

数据表格的误用 

  Table本来就是用来放置表格状的数据,不能像布局表格一样去写,而是可以用很多自带的标签和属性来使表格结构化和语义化。 
  为什么?屏幕阅读器和其他辅助技术在阅读这些错误的数据表格时会有问题。很多文章都介绍了如何写出结构化的数据表格,如Web Standards Project的A table, s’il vous plaît 

Divitis和classitis 

  相对于<span>癖,Divitis和classitis就是用了太多不必要的Div和class。 
  为什么?参看“<span>癖”和“缺乏语义”部分。 

过宽的固定宽度 

  如果你使用的是固定宽度的布局,请不要设定的过宽。说明:在这里我并不是说固定布局和浮动布局孰优孰劣。 
  为什么?如果你指定的宽度宽于浏览者的屏幕,就等于强迫出现水平滚动条,那极不友好。 

含糊不清的和带表现含义的class、id名 

  如何给class或id命名,取决于它是干嘛的而不是它看起来像什么、在哪里。 
  为什么?为了避免你重新设计时候容易产生的混淆。比如一个名为largeblue的class,你却用来用来让字变得“小”和“红”,一个名为leftcol的id你却用来显示在右边。 

没有背景色 

  没有给body指定背景色。 
  为什么?很多用户会把浏览器设置成其他的背景色,如果你不写明的话。 

非良好结构(well-formed)的XHTML 

  使用非良好结构(well-formed)的XHTML。
  为什么?如果XHTML被服务器伺服为application/xhtml+xml,严格的浏览器,如Mozilla系列,就不会显示那些非良好结构的XHTML。说明一下,本网站并没有把所有望也伺服为application/xhtml+xml,理由我在另外一篇文章里说明:Content negotiation. 

text input颜色设定遗漏 

  只给表单区域指定背景色或者文字颜色,特别是当行或多行文字域(input type="text"和textarea)。
为什么? 有些人把他们的浏览器或操作系统设置成反色,默认情况下一个text input就会显示为黑底白字,而不是你想要的白底黑字。
  如果你把文字颜色设置成深灰色,又不指明背景色,在反转了颜色的浏览器中,就会显示为黑色背景的深灰色字,一团糟。反之同理。
  总记住设定前景和背景色,或者记得要设定文字输入域。
  这些都是你应该要注意的问题,很长?如果你都避免了这些错误,那么你已经做得很好了。如果你已经犯了其中的一个或多个错误,嗯,我真觉得有点内疚。最后希望本文能够帮助你在以后的工作中少犯错误。

  原文:Web development mistakes, redux
  http://www.456bereastreet.com/lab/web_development_mistakes/
  翻译:JunChen

时间: 2024-10-31 01:39:14

标准建站之web设计与开发常见错误的相关文章

web标准建站:CSS入门教程

css|web|web标准|教程|入门教程 原创教程,转载请注明出处:网页教学网 CSS是"Cascading Style Sheets"的简称,中文翻译为"串接样式表",也有人翻译 为"样式表".CSS用以作为网页的排版和风格设计,在web标准建站中,对CSS的熟悉和使用 是相当重要的一个内容.CSS的作用是弥补HTML的不足,让网页的设计更为灵活. 这个文章只是为您介绍CSS的基础应用,指引您的一个入门的基础教程,主要目的是为 推进web标准

WEB标准建站-XHTML基础教程2

html基础|web|web标准|xhtml|基础教程 本站原创内容,转载请注明出处网页教学网. XHTML DTD定义文档的类型. 在XHTML中我们必须声明文档的类型,以便于浏览器知道你的文档是什么类型的,而且声明部分要加在文档的head之前.如: <!DOCTYPE Doctype goes here> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Title g

WEB标准建站-XHTML基础教程1

html基础|web|web标准|xhtml|基础教程 本站原创内容,转载请注明出处网页教学网. 前言: 现在都讲究标准建站,而标准建站使用的技术主要是XHTML+CSS,而现在我们普遍使用的是HTML代码,那么我该如何转换呢?以及HTML和XHTML有什么不同呢?在这个教程里,你将学到HTML和XHTML之间的不同,以及如何将HTML转换为XHTML.毕竟XHTML是发展的方向,所以我觉得该教程有必要在本站上发布.我感觉要是你想使用标准还是最好先学HTML,因为比较简单,然后再来看该教程. X

新手建站如何选择网站的开发语言?

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 新手建站如何选择网站的开发语言? 首先谈谈大家熟悉ZBLOG程序,Zblog程序采用的是ASP程序编写的,ASP是一种脚本语言,全名 Active Server Pages ,使用ASP可以开发和执行动态的.互动的.高性能的WEB服务应用程序.但是不幸的是微软已经放弃了ASP的技术支持. 既然微软放弃了ASP,那么就不得不提微软现在主推的AS

客户服务年升级计划 万网标准建站不满意全额退款

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 继3月15日推行"总裁服务日"后,今天,中国万网再推出"客户服务升级计划",承诺标准建站服务不满意就全额退款,全面提升客户体验.保障用户利益,让用户全面体验金牌品质服务. 据了解,2009年中国万网全面实施"投资客户"计划,通过降低网络门槛.让利用户等方式,成功帮助31万中小企业在互

Web设计和开发:2012年Web设计和开发的趋势

文章描述:2012年Web设计和开发的15个趋势. Craig Grannell 访问了行业的精英们关于2012年Web设计和开发的趋势. 2012看来注定是有趣的一年.经济的下滑继续广泛地打击行业,看不到结束的尽头.政府极力审查网络,否认公民的基本权利,支撑摇摇欲坠的媒体公司. 对网页设计和开发,2012还是比较混乱的一年.我们处于很多小矛盾当中:移动贪婪地占领市场份额:原生App威胁开放的互联网:收费墙阻碍曾经免费的信息:合作与分裂的冲突:复古(Skeuomorphism)的交互模式挑战创新

Web设计和开发常犯的9个用户体验错误和解决方法

一个烂网站就像一个性情乖戾的推销员,这样的推销员不仅无法说服顾客,而且让人生厌,就网站而言,再也没有什么比蹩脚的用户体验更让人沮丧的了.本文讲述了 Web 设计与开发中常犯的 9 个用户体验错误以及它们的解决方法. Web 用户体验大师 Jacob Nielsen 说过,"一个烂网站就像一个性情乖戾的推销员",这样的推销员不仅无法说服顾客,而且让人生厌,就网站而言,再也没有什么比蹩脚的用户体验更让人沮丧的了.本文讲述了 Web 设计与开发中常犯的 9 个用户体验错误以及它们的解决方法.

2012年Web设计和开发的15个趋势

中介交易 SEO诊断 淘宝客 云主机 技术大厅 Craig Grannell 访问了行业的精英们关于2012年Web设计和开发的趋势. 2012看来注定是有趣的一年.经济的下滑继续广泛地打击行业,看不到结束的尽头.政府极力审查网络,否认公民的基本权利,支撑摇摇欲坠的媒体公司. 对网页设计和开发,2012还是比较混乱的一年.我们处于很多小矛盾当中:移动贪婪地占领市场份额;原生App威胁开放的互联网;收费墙阻碍曾经免费的信息;合作与分裂的冲突;复古(Skeuomorphism)的交互模式挑战创新的设

对Web设计和开发人员有用的15个Chrome插件

导读:原文作者Brian在freelancefolder.com发表了一篇<15 Useful Google Chrome Extensions for Web Designers and Developers>,由伯乐在线敏捷翻译组编译,文章介绍了非常有用的15个Chrome插件.以下是全文: 最近我才把谷歌浏览器设为默认浏览器,而与此同时我开始将它用于我的兼职Web设计和开发项目中.由于我所依赖Firebug的插件,在Chrome浏览器并没有完全的对应插件,所以我还是时不时要用Firefo