打印

[讨论] 试总结:web标准页面必备系列

试总结:web标准页面必备系列

  今天在群里,熊猫君提议整理一个帖子,一方面为初学者提供一个入门指南,另一方面也象借此和已经在从事这个行业进行一点交流。下面是我从事这个行当多年的一些经验总结,希望抛砖引玉,大家不吝赐教。

1、必备工具
  其实web标准并不是很复杂的技术,实现web标准的工具也很简单,说白了,只要可以进行纯文本编辑的软件,都可以作为代码编写的gon工具。例如记事本、UltraEdit甚至CuteFTP的编辑器(象我这种懒人有时候就用那玩艺儿直接在线编辑,汗)。
  而另一些较专业软件会提供高亮显示代码(前面提到的UltraEdit也具有此项功能)、代码提示、自动闭合标签等等功能,使用起来会大大提高工作效率。如DreamWeaver、MS Expression、EditPlus等等,这些编辑软件目前是绝对的主流,无论是初学者上手容易还是专业人士提高效率都是不错的选择。

  再说说浏览器环境,目前一台机器同时装IE、Firefox、Opera、Safari已经不是难事,而IE7 Standalone和MultipleIE的问世也让IE7和低版本IE并存成为可能。推荐浏览器环境——本机安装IE7、FF、Opera、Safari,同时安装MultipleIE。从我个人的使用经验,IE7 Standalone存在一定的缺陷,有可能导致本机安装的IE6无法正常使用。

  除了编辑器以外,还有就是必不可少的调试工具啦,首推当然是Firefox下的Firebug!IE下目前还没有与之相当的调试工具,比较好的有IE development toobar、IE Debugbar等等,不过和Firebug完全不是一个档次的东西,只能说勉强凑合用。

2、必备的HTML/XHTML基础

  说到基础,其实正是我最想谈的。从论坛许多的帖子也可以看出来,大多数问题的产生是由于制作者本身基础的不牢固。而HTML/XHTML作为基础中的基础,更是许多人的薄弱环节。然而很多人还是喜欢一上来就问布局或者Hack这些技巧方面的问题,其实很多问题如果本人的基础牢固了,几乎不能被称之为问题。
  web标准必备的HTML/XHTML基础,大致有几个方面:
  1、每个标签的语义,这一点是网页标准的根本。而整个网页标准化几乎都是围绕着这一点而来的,明确了语义,才能选择合适的标签;明确了语义,才能构建可读性良好的结构。例如<h1>就是网站最高等级的标题,它不应该放在<h2>层级之下;例如<fieldset>和<legend>,主要用于表单元素分组,不应该因为它那个漂亮的边框就用来表现新闻列表。
  2、每个标签的初始样式,现在有很多重置标签样式就是针对这一点,因为每个标签在不同浏览器下的初始样式是不同的,而重置样式是为了更好地实现网页兼容性。从我个人的角度来说,不推荐初学者一上来就了解如何重置样式,而应该从了解标签的初始样式入手,先了解了这些,才能明白每一行重置样式的代码的真正含义。
  3、标签的正确嵌套规则,同时还必须了解的是哪些标签属于块元素,而哪些属于行内元素。这是即使是高手也会经常忽略的方面,例如本人(^_^)。今天看到http://bbs.blueidea.com/thread-2834342-1-1.html这个帖子的时候,才意识到,原来之前对dt、dd的嵌套规则理解有误,二者不能一视同仁。HTML/XHTML的嵌套规则并不算简单,常用的标签不过三十个上下,就有大约二十种不同的嵌套规则,稍不留神就会出错。虽然不严格遵循并不会影响页面的表现,但养成一个良好的习惯是很重要的,它往往能决定你在这条路上可以走多远。
  4、标签的属性。这个又要分为两方面,一是符合标准的常用属性及对应的值,例如<table>的summary属性、<th><td>的scope属性、<label>的for属性等等;二是标准强制要求的属性,例如图片的alt属性、form的action属性、textfield的col属性和row属性等等。
  HTML/XHTML基础,虽然可以分开成多个方面讲,但实际关于它们的知识往往是综合在一起的,大多数相关的手册几乎都有详尽的介绍。对于这方面知识的学习,除了看相关手册外,多把自己的网页拿去w3c做校验也是不错的方法。

3、必须了解的CSS知识

  CSS是标准化最吸引人的地方,也是时下讨论最多的话题,市面上的相关书籍也在web标准类里占据压倒性的比重,甚至有些人(包括一些用人单位)认为CSS就是网页标准。这种过于夸大CSS作用的观点固然是错误的,但CSS对于网页标准的重要性却也可见一斑。
  CSS相关的知识、技巧很多,从知识的必备性方面来讲,以下几个方面是我认为最重要的:
  1、布局。布局是表现层技术的基础,任何表现层的东西都是基于布局之上的。利用CSS布局的方法有很多种,例如float、绝对定位、负margin等等。每一种布局都有着各自的优势和局限性,从适性最广来讲显然是float最佳,也最为常用,但清除浮动往往是让人头疼的问题。绝对定位的网页抗压性好,但自由度低,而且渲染效率最差。负margin是最不破坏文档流的办法,但在对负值支持不佳的IE下往往会有灵异表现。关于布局方面的知识,建议看一下webflash的《彻底弄懂CSS盒子模式》系列文章,个人认为相关知识的文章尚无出其右者。
  2、IE下的Haslayout渲染模式。其实hack是许多标准工程师所深恶痛绝的东西,但在浏览器兼容性要求越来越高的今天,hack却往往是一种无奈之举。而深入了解IE的Haslayout渲染模式,就会明白许多hack的来由,以及许多兼容性问题的产生之源。推荐阅读——译文On having layout。然而HasLayout问题之多,绝非一两篇文章所能概括,通过阅读文章,了解其中的原理,再举一反三,很多问题就会迎刃而解了。
  3、符合标准的CSS规则。关于这一点,我可以不负责任地说,数以千万计的网站,其CSS完全符合标准的,所占比重不会超过1%。这并不是一个悲观的估计,即使是w3c推荐的一些网站,例如ESPN,他们的CSS也时常会通不过校验。CSS的许多规则的确令CSSer们非常不适,例如background和color,这两个属性绝大多数人都是分开来使用的,而w3c标准却规定两者必须“生则同生,死则同死”。还有就是各个浏览器的专有属性,在实现一些效果时是最简单有效的。这种时候我们往往会选择放弃标准,但暂时的放弃不意味着无视。今天知道我们哪些行为是错误的,以及为什么要用错误的方法,明天改正起来就不会太难。
  4、提高网站性能的技巧,如有助于SEO的以图代字、用尽量少和小容量的图片实现圆角表格、用background-position实现图片切换以提高渲染效率等等。从对网站的帮助角度来看,这些技巧远比浏览器hack更值得掌握。
  5、了解一点js知识。这个和CSS关系不是那么密切,但经常看到很多人钻牛角尖,用js可以非常简单实现的效果,非要用CSS去勉强实现。例如将子菜单放在链接里,通过:hover触发。又比如多列等高布局的实现。这已经是行为层的范畴了,为什么还非要用表现层来实现呢?当然这里并不是说所有CSS不容易实现的都往js里扔,而是要了解一下双方的技术特点,合理地选用最佳方案。

4、必备的网站样式管理技巧

  1、规范化的命名与合理的代码重用性,也就是ID和class。对不起,这里又要老生常谈一下,因为昨天刚刚又看到一个通篇没有用一个ID的网站。ID和class是属于结构层的,不过CSS的调用却几乎都要通过ID和class来实现。但是,ID和class不仅仅是为了调用CSS样式而存在的。恰恰相反,是良好的ID和class构建的结构给了CSS大展身手的舞台。搞反了彼此关系,其实还是表现主导结构的思路,也就和满屏幕的table没有本质区别。理清了ID、class和CSS的关系,再来谈命名,命名其实只有一个基本原则,就是结构化。当然,在结构化之余,body、框架、模块之间的命名如能以某种形式加以区别(我个人习惯是加不同前缀),会让代码更加清晰。
  2、样式文件的管理,也就是如何存储网站的样式文件。如果是一个很小的网站,把所有样式存在一个文件中也是没有问题的。但大网站的CSS往往几十上百k,全部存在一个文件里不但影响网页加载,也不利于修改维护。如何分割CSS,需要事先做好规划,无论是按栏目按功能还是按层级,要根据自己网站的特点。

5、其他

  期待大家继续补充……

[ 本帖最后由 benboba 于 2008-3-5 15:36 编辑 ]
本帖最近评分记录
  • phantom 威望 +2 好文章啊,期待下期更好的! 2008-3-7 14:50
  • blank 威望 +3 加分鼓励,支持原创 2008-3-5 16:34
沙发沙发
好文章,抢个沙发

TOP

不过对于JS不是了解一点,为了更好的学习标准的内容,JS可以说是必须的一个技能,更好的为你理解三者的分离打下基础。

当然CSS,HTML,JS这些也仅是标准的一部分,需要学习的还很多。
个人Blog:PlanABC   团队Blog:淘宝UED  专注Web前端技术!

TOP

好文章 !

TOP

不错不错,可惜打分晚了。回头大家帮忙整理一下文中涉及的工具的下载链接,和一些细节的出处,作为新手入门的帖子归档。
blog Web标准化交流会 WEB标准群:46077068

TOP

对必备工具的补充

最重要的工具Firebug,我只能说他是一个很优秀的WEB开发调试工具。
https://addons.mozilla.org/en-US/firefox/addon/1843

1.httpwatch
抓包工具,用来分析网站打开速度优化的工具
YSlow yahoo性能分析工具,对于新手还是有效的,不过如果了解了他的优化条目,剩下的就要交给httpwatch的分析和数据统计了
https://addons.mozilla.org/en-US/firefox/addon/5369
http://www.httpwatch.com/
2.Firefox插件webdeveloper toolbar
用来分析优秀站点的工具
http://chrispederick.com/work/web-developer/
3.Multiple_IE
http://tredosoft.com/Multiple_IE
4.Html Validator Firefox验证工具
做标准,不看验证有点说不过去,虽然很多情况让你不得不使用不能通过验证的标记,但是也是很方便的
https://addons.mozilla.org/en-US/firefox/addon/249
blog Web标准化交流会 WEB标准群:46077068

TOP

样式文件的管理的补充

这里包括网站的样式管理和浏览器hack的处理

如果不考虑换肤的复杂的博客程序,可以使用如下管理方案
1.       公用样式存放在公共样式文件中 global.css
2.       一类页面的样式跟一个样式文件比如 index.css search.css hittop.css
3.       使用条件注释处理hack,保证主样式的绝对纯净和标准化,因为浏览器的发展趋势是趋向于W3C标准的。Hack文件为 ie7.css ie6.css ie6lt.css 分别是IE7下,IE6下,IE6以前版本的浏览器。

那么你的页面的样式就是这样
复制内容到剪贴板
代码:
<link rel="stylesheet" rev="stylesheet" href=" css/index.css" type="text/css" media="screen" />
<!--[if IE 7]>
<link rel="stylesheet" rev="stylesheet" href=" css/ie7.css" type="text/css" media="screen" />
<![endif]-->
<!--[if IE 6]>
<link rel="stylesheet" rev="stylesheet" href=" css/ie6.css" type="text/css" media="screen" />
<![endif]-->
<!--[if lt IE 6]>
<link rel="stylesheet" rev="stylesheet"  href=" css/ie6lt.css" type="text/css" media="screen" />
<![endif]-->
blog Web标准化交流会 WEB标准群:46077068

TOP

一大清早就看见这好文章··
可惜目前本人还停留在dw的 阶段啊··555

TOP

好文章,不顶不快,转一下,谢谢!
开发郁闷期

TOP

精品文章哈,说的很全面啦

TOP

恩,好文章啊!支持一下!!
Let's go home!

TOP

好文啊。
这对想学习web标准的朋友来说是一篇不可多得的文章。
建议对web标准感兴趣的朋友好好读一下。
可以转走么楼主?

TOP

恩,很实用的帖子
学习一下!

TOP

嗯,经验之谈。很多东西实践才能体会,否则过段时间就可能忘了

TOP

好文章,版主提供的东西太经典啊

TOP

好文.............收藏之

TOP


呵呵,很久都没有看到这么好的帖子了。

TOP

不错,我顶!
不会突破, 没有篮板。我拍下的是篮球,弹起的是忧郁

TOP

不错,不错!一语中的!所有的精粹都在这儿了!
Let's go home!

TOP

我觉得文章对于初学者还是有些懵懂的,里面涉及的概念很多,好似经验分享,保留做以后学习吧~

TOP

回复 #7 greengnn 的帖子

貌似这里找不到Multiple_IE的下载连接呀````````````
http://tredosoft.com/Multiple_IE

TOP

好帖子 支持 房主 你现在从事的是什么工作呢?

TOP

读完了,多谢LZ啦
CSS...

TOP

好文章
本人认为在IE里调试的话 DevToolBar 还是很不错的哦

TOP

赞一个

每样都会些,但都说不上精通,惭愧

TOP

8cuo8cuo

TOP

好文...顶上

TOP

看到这篇文章感觉很舒服。
写得很好~

TOP

ie下有个工具也还行----ViewPage

TOP