HTML开发王

出版时间:2008-6  出版社:电子工业出版社  作者:张亚飞  页数:439  字数:742400  
Tag标签:无  

前言

  自从20世纪70年代因特网诞生以来,以WWW技术为支撑的万维网近十多年来迅猛发展,渗透到社会生活的各个方面。从旧金山郊外的硅谷,到新竹日夜通明的半导体工厂,它正在改变着我们工作和生活的方式。.  全世界有3/4的人还从未接触过因特网,这也预示着我们这些正在从事与因特网相关工作的人员,以及即将从事此类工作的设计者、开发者都将有一个美好的明天。  必须掌握的万维网常识  用户首先必须掌握万维网的基本常识,这是万维网的基本知识结构,也是“开发王”这套书所基于的基本理论基石和贯穿于始终的纲要。并且,这也不单单是一个知识结构的问题,其实任何的技术知识都是随着技术本身的发展慢慢积累起来的,是技术不断变化、不断延伸的结果,所以知识结构往往也是一个怎样正确认识技术发展史的问题。下面我们就来简要介绍一下万维网的技术简史和万维网的基本知识结构,这也是阅读“开发王”这套书的基本前提。  WWW也就是我们经常提到的万维网,它是Internet上那些支持WWW和超文本传输协议(HTTP)的客户机与服务器的集合,通过它可以存取世界各地的超文本文件,内容包括文字、图形、声音、动画、资料库,以及各式各样的软件等。  HTML是万维网所基于的标准的格式化语言,它自从被发明以来就构成了整个万维网设计和开发的核心,这也是我们每个从业人员都必须熟知于心、了然于胸的,它是我们从业于万维网的基石。  鉴于HTML扮演的重要角色和万维网不断发展的客观要求,我们需要不断改进和细化它的功能——将结构、内容和样式分离已是大势所趋,这也是CSS(层叠样式表)出现的原因。  在样式表没有出现之前,HTML用于呈现的功能实际肩负着两种责任:一种是语义的呈现,一种是表现形式的呈现。例如,b元素(英文bold的缩写)既要表现加粗的语义,实际上还要用做呈现的标识。  样式表的出现简化了HTML语言并且减轻了HTML对表现形式的责任,它使设计者和用户都可以控制文档的表现形式,包括字体信息、对齐方式、颜色等。  HTML和CSS一道构成了万维网应用的客户端基石,它们又被称为万维网应用程序的展示层。  万维网在不断前进,人们对于新功能的渴望也在不断增强,而这些新功能理所应当能够针对不同用户的需求做出不同的响应,这也就是动态网页技术层出不穷的原因。  在这个目标的驱使下,微软创造了ASP技术,进而又创造了ASP.NET;SUN创造了Servlet,进而又创造了JSP;Adobe创造了ColdFusion;而万维网的技术社区会聚着不计其数的开发者,他们中的杰出者创造了PHP并使之成为流行的动态网页开发技术。  这些动态网页技术可以针对用户的不同请求做出不同的响应。“请求/响应”正是万维网应用程序的基本模式(不管是静态网页还是动态网页)。不同的动态网页开发技术有不同的对应于“请求/响应”的语言特点,但它们也都有共同的实现特点,那就是针对请求生成不同的HTML网页,并把它传递到用户的客户端软件中。正如你经常用到的那样,这个客户端软件被称为“浏览器”。  由于动态网页总是位于服务器上,而它生成的HTML网页又总是被浏览器浏览,所以这个开发经常被描述成B/S,也就是Browser(浏览器)和Server(服务器)的缩写。  所有的基于WWW技术的动态网页技术都会生成HTML网页(网页中也许会包含样式表,也有可能仅仅是裸数据而不包含HTML标签),这也是为何你会看到不同的动态网页技术却可以创建同样呈现结果的根本原因。  同样,在客户端浏览器中你也看不到动态网页的源代码,因为这些源代码在服务器上就已经被解释、执行,最后被转化成HTML格式的代码并被传递到客户端。这些网页之所以被称为动态网页,也正是因为它们能够根据不同的请求生成不同的HTML网页,这个作为结果的HTML网页是“动态”产生的。  这些动态网页技术和支持它们的底层技术一道也被称为中间件,它们构成了网络应用的中间层。由于这个中间层包含了用于分析用户不同请求,并对不同请求做出不同响应的业务逻辑代码,因此,这个层又被称为业务逻辑层。  位于业务逻辑层之下的是数据服务层,用户请求所要获取的数据从这里被“筛选”出来,并经过业务逻辑层被发送到客户端—它们被包含在HTML文件中。  出于人们对数据海量存储和便于查询访问的渴望,推动着整个数据服务产业的发展,关系数据库(Relational Database)凭借其自身的特点从它被发明那天起就成为整个数据服务产业的核心。Oracle也正是凭借其著名的关系数据库产品Oracle 9i成为软件产业中仅次于微软的软件巨擘。IBM DB2、微软SQL Server和开源的MySQL也都是关系数据库产品中的佼佼者。  而微软Office产品组中的Access以其高智能、轻量化和简单易用性的特点在办公自动化软件(OA)领域内广泛应用,它也是很多开发人员学习数据库开发的极佳入门工具。    .数据服务层不仅仅是数据库,而且还包含了其他可以用做数据的资源,例如XML。XML已经成为因特网间标准的数据交换格式,它也正在成为数据存储的标准格式。  展示层、业务逻辑层、数据服务层构成了当前万维网应用程序的基础架构,它们也被统称为“三层架构”。  实际上你不得不了解它,它是进行万维网应用程序开发的认识论基石,也是实践的指南针。设想存在一个不遵守该指南的万维网应用程序是不可能的,同样,设想任何不了解该指南而进行的万维网应用程序开发也是近似荒谬的。  在“开发王”系列图书中,我们针对不同的万维网技术,对三层架构做了精确的、同一的阐述,这是你在全球其他任何地方都无法完整系统地获得的。不管你愿不愿意承认,你永远都无法摆脱它。  在万维网软件开发日益区分为泾渭分明的三层架构后,市场和技术并未停止它们前进的步伐,它们依旧在不断地向前延伸。在技术厂商的推动下,在万维网的技术社区的遥相呼应下,三层架构中的每个层次都为了某些特殊的应用不断向其邻近的层次延伸,首当其冲的便是展示层向逻辑层的渗透。  展示层利用客户端脚本和浏览器插件技术开始分担业务逻辑层的部分运算,而且,它们还有一个响亮的名字,被称为“富客户端”。  JavaScript、Flash和Java Applet目前是实现展示层分担业务逻辑层运算的主要软件技术。JavaScript因为AJAX解决方案和DHTML解决方案的结合而“重获”新生,而Flash凭借其分布广泛的Flash Player插件及高效的开发环境而正日益成为下一代万维网客户端运算的核心。与此形成鲜明对比的是Java Applet技术,因为其开发的难度极高,以及其客户端运行环境自身的原因,从其诞生那天起就从未引人注目过,今天,它依然被搁置在某个角落。  正如你在“开发王”系列图书中所看到的那样,我们已经将JavaScript、Flash技术完全融入到整个万维网开发体系中,现在你理应将它们视为一个整体,而不是再孤立地去看待它们中的任何一个。  完整系统的万维网知识体系能为你带来什么  是的,这个问题是每一个开发者、雇主、任课教师和学员所关心的,而且,很显然,每个用户理应关心。实际上,每一个人都应该问自己这样一个问题。..  用户还会问:你为何为该套书起名为“开发王”?它(的内容)真的如描述的那么好吗?  这真的很直截了当,而且我本人也喜欢直截了当。当然,每一个开发者也都有权利这样提问,而我也正想在这里为大家分享这个问题的答案。  这本书为何被冠以“王”  每本图书都可能会被冠以“王”这样的词汇,以表明这本书是多么伟大,但是并非所有图书都能名副其实。  作为这套书的作者,我的眼中只有“王”—这就是我的回答,并且,毫不犹豫。  当然,智者从不相信信口而来,每一个读者理应都是智者,而唯一值得相信的理应是事实。  这套书从最初的准备,到今天的出版,前后经过长达6年的时间,前后经过了数以千计次大小修改。你现在看到的这个序言我也写了二三年时间,序言的目标就是做到“增一字嫌冗余,减一字则无从下手”。  写作的过程是漫长而痛苦的(偶尔也会有快乐),出版的历程也是如此。如果作者想出版一本书,就必须首先给出版机构一个策划书—也就是这本书的基本情况和设想。  每一个作者都会想该如何打动出版机构出版它,这是毫无疑问的。  你得苦思冥想……  但实际上,这很简单,你必须告诉他们这本书是最棒的,我想,除此之外别无他法。  如果没有证据,我想你也根本不会相信,更何况那些“眼疾手快”的编辑呢?  当然,那是因为我给他们提供了充足可信的证据。如果你有某个事实作为证据,我想你也可以这样做,让我们来看一个简单的事实吧:  根据JavaBeans规范的要求,一个JavaBeans必须支持序列化或者外部化,这在JavaBeans规范5.5节的第一行就明确地定义了这个要求。  如果我没有记错,那上面白纸黑字写着下面的一行英文:  All beans must support either Serialization or Externalization.  这意味着只有实现序列化或者外部化,或者继承于某个实现了序列化或者外部化的基类,才能将一个Java类视做JavaBeans。但是遗憾的是,当你在查阅有关Java网络开发(包括JSP开发、JSF、Servlet、Structs等)的图书和资料时,又有多少图书和资料教你遵守规范的要求呢?绝大多数的Java网络开发图书和资料在没有实现序列化或者外部化时就告诉我们年轻的开发者:这是一个JavaBeans。很明显,这是跟我们年轻的开发者开了一个天大的玩笑!  当然,仅仅是玩笑尚不足对我们年轻的开发者构成致命的打击,关键是按照这样的阐述开发出的应用程序将会给雇主造成致命的、无法挽回的损失。  由此我也想到,曾经有开发人员在读完一些计算机图书,再经历自己多年的开发实践后有以下感慨:国内很多技术图书领域都是这样,好多计算机图书只要最初的那一本错了,后面的就全是Copy,甚至都不去关心事物的本源是什么。  但,这仅仅不过是悲剧的开端……  如果究其产生的根源,那么基础认知上存在根源性错误是导致这种情况发生的直接原因。  下面要介绍的这个认识和实践的错误显得更加复杂,可能对于一个初入门的作者和译者而言显得有些难了,因为要想理解JavaBeans的真正作用对他们来说还是有些难度的。  归于JSP规范并未规定[jsp:useBean]动作标签必须使用JavaBeans,所以大多数的Java应用程序服务器(JSP实现)在转化阶段并未对其进行鉴别(实际上,就我所知的Java应用程序服务器中,没有一款对其进行鉴别),这导致不计其数的开发者在使用[jsp:useBean]动作标签时将一个简单的Java Class当做JavaBeans来使用,而不是有甄别地去应用这个动作标签。  仅仅是[jsp:useBean]动作标签中有useBean这个英文单词,于是就造成了这样巨大的错误。  你可以看到,在《JSP开发王》这本书中,我甚至不建议用户使用[jsp:useBean]动作标签。当然,如果非要使用它,那么就必须遵守《JSP开发王》提出的几点约束。  严格遵守规范和标准,警惕低级错误可能造成的悲剧  JavaBeans问题的发生是整个Java网络开发领域内的悲剧,实际上也是整个网络开发领域内的悲剧。连这样基础的东西都漠视,视标准和规范的要求于不顾,更不要说了解使用JavaBeans的主要目的是什么了,那么我们可爱的、年轻的开发者如何才能得到正确的网络开发知识呢?  或者,每一个开发者都应自问:我如何才能为雇主开发出负责任的应用程序来呢?  开发者一定要破除“雇主付钱请我来编写程序”的错误观念,这实际上是忽略了后面的这句:“目的是我的程序能使雇主有更大的回报”。  你可以将一个范例代码写错,就像写一个错别字,可能在所难免,但你绝不能犯如此的低级错误,这是影响你整个开发体系的大事。  每一个人都知道,悲剧显然不是由某个特定的错误引起的,而是由某个根深蒂固的错误思想导致的,如果这种思想不除去,挡在开发者和雇主之间的魔障亦不会消除。它也会逐渐抽干雇主多年努力所换来的投入……当雇主独处一室苦苦思索时,你是不会体会到的。  错误还在蔓延?  如果仅仅是这样一个小事例,尚不足使这套书被称为“王”,更多的基础性错误还继续在用户的软件开发知识体系中间蔓延,它们正伺机阻碍你企业的发展。  如果说JavaBeans仅仅是个偶然性的错误的话,那么在基本验证和网络应用程序安全这样最基础的问题上,你同样几乎找不到一本像样的教材和资料能够完整系统地正确阐述它,更不要说其他的安全措施了。  这个错误在ASP、ASP.NET、JSP、PHP开发领域内存在的时间之长,几乎可以与这些语言被发明那天起同步。导致这个错误发生的根源与导致JavaBeans错误发生的根源惊人地相同,都是根本不顾规范的要求—只要最开始的一本书错了,那么后面的全是Copy。  错误也是积累的,在三层架构万维网应用程序的展示层,如何正确认识HTML、CSS、JavaScript和Flash已经成了当务之急,富客户端应用程序已经成为当前因特网应用程序开发中极受重视的领域,因为它能给消费者带来最佳的客户体验,而这也正是雇主所需要的。  HTML这个最基础并且最简单的语言可能用户从未认真审视过—可能只是因为它简单了,一个承担了内容结构和内容呈现责任的语言如何在新的体系面前被正确理解呢?CSS究竟使HTML发生了何种变化呢?大多数的教材都是教授开发者和设计者怎样使用CSS去呈现网页,却忘记了这样做的根本是什么,好像这根本就不应被考虑。好在,现在该是结束的时候了……  AJAX解决方案的出现仿佛使JavaScript“重新”回到人们关注的视线中,但如果没有DHTML解决方案作为铺垫,AJAX又能做什么呢?答案很简单:它什么也做不了。  AJAX和Flash现在是富客户端的主流,但是,如果你不能完整系统地正确认识三层架构的基本体系,如果不了解C/S和B/S的区别,那么设想能真正理解AJAX和Flash用于开发富客户端应用程序只能是空想。  虽然Flash已是一个成熟的体系,但是,目前Flash开发对很多开发人员来说还是一个较新的领域。两年前,很多开发者还在喋喋不休地争论AS2和AS1的优、缺点,争论往往意味着还不能正确地认识它们的真正实质。所以,两年前,在拙著中就完整系统地介绍了这方面的知识,帮助用户完成了这一基本认知。现在,它已经被完全融入到这个万维网知识体系中,过去的大批量错误认知已经被更正,我们还建立了完整的基于时间轴的Flash应用程序开发的理论体系,所以现在看起来,这个领域内的灾难并没有AJAX领域那么深重。  这些错误的发生不但使得开发者深受其害,重要的是,它有可能使得雇主的网络应用程序因此而遭受重大挫折,并失去客户的信任。  在这里,我提到了很多不应该发生却又事实上发生了的,也是现在正在发生的悲剧,而更为重要的是,对规范、标准、实现、实践的完备性认识还有很多、很长的路要走。如果没有完整系统的知识体系,开发者还不知道要在“黑夜”里摸索多久。  想一想,除了这里提到的错误,还有哪些错误被隐藏起来了,你还未发现呢?这也是为何我在书中对易出错的部分做了突出显示的原因。  也许不远处真的就有冰山出没……  当我看到有无数的教材和资料在长篇累牍、多达数十页的论述抽象类和接口的区别时,我真的感到悲哀,是在为整个使用面向对象进行软件开发的开发者们悲哀。当我两年前用一句话来区分抽象类和接口时,可能并没有人真正地去注意过它,虽然,在拙著中还用了文字加粗……  就像6年前,当在拙著中第一次提出Flash Player虚拟机的概念时,我想也并没有多少人真正注意过这个问题;但是在2年前,我在拙著中第一次明确阐述了在ActionScript 2.0和ActionScript 1.0中存在的基本错误认知,现在,两年过去了,我想再也没有人会去犯同样愚蠢的错误了。  想来应该有不少任课教师应该可以给他们的学员讲授正确的Flash开发了。  但是,如果我说很多开发者连Flash基本的变量作用范围都不能搞清楚,你是不是很诧异呢?  是啊,两年前我也经常听一些人说他们会Flash开发,可是我却发现他们连最基本的变量的作用范围都一知半解,如果连这个都不能系统掌握,能开发出一个完美的程序来吗?又如何为雇主创造价值呢?  想来,我的前一本Flash作品已经有不少人看过了,但是,同样,大多数Flash开发人员可能并没有得到这个知识。  是啊,因为并没有特别声张这件事,就是想看一看用户究竟有没有真正去学习Flash开发,去认真获取那些最真实的东西。  但是,这终究还是造成了遗憾——当拙著第一次为整个ActionScript语言带来了完整系统的变量作用范围的介绍时,可能很少人去注意它。  现在,新版的《Flash开发王》我想不会再有人错过了。  有时候,夜真的很黑、很深沉,它会淹没你,并让你忘记你自己……  开发王系列图书有两个最基本的基石  当然,即使有点点滴滴的、零星的低级错误,也不能说本书不能称为“王”。开发王必须有两个最基本的基石,除此之外别无其他,这两个基石是:  帮助用户建立正确的认知  帮助用户建立完整系统的知识体系  正确的认知就是一切的根本  正确的认知就是一切的根本,这无须进行任何说明,而关键是什么是正确的认知。  认知有两个层面的意思,一个是认字,一个是知道。  每个人都是从认字开始的,这毫无疑问,认字就是了解事实是什么,知道就是怎样做才能正确地认识到这个事实。  我们经常听到一个成语“授之以鱼,不如授之以渔”。是的,不单单是应该告诉用户一个事实,还要告诉他们怎样去正确地认识到这个事实。  事实往往是某种规定,就像你学习汉语拼音那样,a这个英文字母就是发音为“啊”。当然,对于应用程序开发来说,这个规定性或由某个标准定义,或由某个规范定义,或由某个程序的业务逻辑所要求,而你的“认字”也就是了解这种规定性究竟规定了什么。这个“认字”很枯燥,你只有死记硬背,完全遵照,就像完全遵照JavaBeans规范那样。  现在关键点是:这个死记硬背的事实用户如何才能认识到它呢?这真的很难办。为此我们提出了3个最简单、最基本的问题可以帮助你一举解决这个难题:  这是什么?  为什么是这样?  该怎样做?  你在“开发王”每一本书中,甚至每一章中都可以看到或体会到这样的3个最简单、最基本的问题。  完整系统的知识体系就是顺理成章的一切  正确的认知往往是一点一滴汇聚起来的,如果这些点点滴滴的认知被相互肢解开来,那么最终形成的则是一片混乱。这就需要有一个知识体系将这些点点滴滴的认知相互关联起来形成完整系统的知识体系,这也是日渐庞大的万维网的必然要求。  正如你看到的那样,我们将万维网应用程序的知识体系建立在三层架构的基础之上,在这个最基本的认知和知识体系下不断将知识延伸。  我不想在这里对什么是“完整系统的知识体系”进行过多的介绍,因为每个人都理解它的字面意思,也理解它对每个开发者都是梦寐以求的,而关键是“完整系统的知识体系”的内容是什么。除了应该牢记这篇序言前面所介绍的万维网的技术史和万维网的基本知识结构,我也不想在前言中再多费笔墨,因为知识体系往往融入在各个知识点的相互结合中,不是一两页纸所能阐述清楚的。  如果能用几页纸阐述清楚那就好了,不过话又说过来,一个用几页纸就能阐述清楚的“完整系统的知识体系”能可信吗?  “完整系统的知识体系”包含了某个领域内的完整内容,不可能使用几页纸就能阐述清楚,而且领域越广,所需要的笔墨就越多。例如,针对JSP,你可能需要用一本书来介绍,但对整个万维网应用程序来说,你可能需要10本书甚至更多,我想每一个用户都不难理解。  谁将从这套书中受益开发者、雇主、主讲教师、学员都将从“开发王”系列图书中受益  开发者是理所应当的最大受益者  毫无疑问,“开发王”这套书是最终面向开发者的,不但初学者,而且资深的开发者也应视它为必读之作。在正确的认知和完整、系统的知识体系面前,初学者和资深的开发者处于同一起跑线上。  “初学者”能够在开发伊始就将技术建立在正确的认知的基础上,并且循序渐进,获得完整系统的知识体系,这不但可以加速学习进程,而且也是正确开发的保证。  “资深的开发者”虽然在实践过程中获得了很多好的实战经验,但未必能够运用自如,这就是过去混乱不堪的知识体系和错误的认知共同作用的结果。如果不砍掉错误和混乱,必然使自己的开发认识踌躇不前,最终走火入魔也未必不可能。  当然,如果你有错误的认知,并且编出了错误的应用程序,那么就要小心了,应该尽快通读本书,趁雇主还未发现之前将漏洞补上。  雇主是最终的受益人  雇主首先要关心的是如何在有效的投入情况下获得较高的产出,也就是如何实现经济产出。  正确的软件开发来源于正确的认知和完整系统的知识体系,这是毫无疑问的。  正如你前面看到的,正确的认知是编写正确程序的关键,试想一个没有实现序列化的JavaBeans将会带来什么样的危害?假设是一个银行结算程序,资金(一个JavaBeans)汇出去了,但是却因为中间运算出了故障而死机,这个时候自动保护装置本应该能够恢复JavaBeans的状态(也就是你的资金),但却因为拙劣的错误认知进而编写出拙劣的程序,这一程序从而又导致这一恢复过程无法完成。对一个企业而言,这是致命的一击—连自己的基础设施都无法保证,企业信誉便荡然无存。  实现经济产出的另一个要关心的事情是如何实现团队协作,这个时候正确的认知和完整系统的知识体系显得尤为重要。  现在,抛开那些点点滴滴的零星错误(虽然它们也很重要),让我们眼光看得更长更远,即使是组织行为学的经典理论也认为仅仅是团队精神和团队意识并不足以成功实现团队协作,共同的技术知识和技术能力才是团队合作得以有效进行的基础。  共同的技术知识和技术能力不但能够很容易使成员清楚要达到的目标,而且相互间也清楚自己应承担的责任和应该实现的功能。因此,一个完整、系统的知识体系对于团队合作而言便显得极为重要。仅仅靠热情,员工们能够合作得像一个团队吗?恐怕员工们自己也说服不了自己,更何况位于组织核心的人力资源主管和信息技术主管呢?  人力资源主管和信息技术主管作为雇主的代表应该将此书作为实现团队合作的技术知识和技术能力评估的“客观指标”。  人力资源主管和信息技术主管作为雇主的代表,同时也是这一知识体系的受益者。这一知识体系首先使你可以认识到一个合格的开发者所应具备的基本知识技能。  除此之外,这套图书包含了大量的测试题,可以帮助你从客观的技术层面上选择那些适用于本企业的开发人员,以及用于员工考评和员工的再培训。并且这些测试题可以提高你的工作效率,从而为你和你的雇主节省成本。  学员应该拥有这套书  虽然学员大多数选择教材都还是为了应付考试,但是不管是用于考试还是用于以后从业于因特网,“开发王”系列图书是建立在正确的认知和完整系统的知识体系之上的,这符合最一般的逻辑要求,有利于记忆和总结,它会加快你的学习进程,提高效率,节省时间。  虽然教材并非由学员自己来选择,但任课老师一般都会非常尊重学员的建议,你应告诉他你看到的真实的东西,以及你想到的东西,如果你这样做了,就理应得到赞许。  如果你发现了教材中的一些错误,就应该及时提醒任课教师,并且也应该和同学切磋这个认识是否正确,这个过程也是培养团队协作精神的过程。  “开发王”系列图书不但适合作为教材,也适合作为自学用书,在3个最基本问题的指引下,学员也可以迅速有效地掌握万维网应用程序开发的知识。并且,书中大量的范例可以用于实际应用程序开发和设计中,每章后面的习题可以用于巩固所学的知识。  任课教师应该使用这套书作为  教材以赢得学员的信任  主讲网络开发的任课教师应该成为正确认知和完整系统的万维网知识体系的传播者,正确的认知和完整系统的万维网知识体系是相对于错误认知和混乱的知识而言的,在教学上,混乱的知识往往与肢解式的授课方式紧密连在一起。  肢解式教学往往是要么盲目地对某个语法进行割裂式的使用方法讲解,要么沉迷于对某个具体范例的长篇累牍的分析之中。这种教学虽然容易让学员沉醉于暂时的范例成果而“沾沾自喜”,但也往往让他们迷失在这种“沾沾自喜”当中,从而忘记软件开发的基本事实。  这样做的教学目标看似明确,其实贻害无穷。  “庖丁解牛,不见全牛”是流传几千年的老故事,讲述了庖丁最初解牛时“所见无非全牛者”,而其“所好者道也,进乎技矣”,这个“道”就是指要完整系统地把握一件事物,然后再勤加练习,到“三年之后,未尝见全牛也”。  任课教师应该将学员从这种“沾沾自喜”的悬崖边缘拉回来,授以庖丁之“道”,勉励其自学以成庖丁之“技”,并最终集万维网应用程序开发之大成。  任课教师要做到这一点,一个重要的方式就是将过去肢解式的授课永远忘掉,那些肢解式的教材也理应被扔到垃圾堆中。  “开发王”这套书能够帮助你完成你的教学目标,这套书的一个编写特点就是其完整系统的知识体系,它能够帮助学员掌握“道”之本质。  为了使教学能够更顺利地展开,并便于学生课后自学,我们在每章的前面对本章内容做了总结,而且,每章的后面提供了习题和小结。  以坚实恒定的基石应对变化  对开发者、雇主、主讲教师、学员来说,市场的不断发展变化是不可避免的,市场的变化进而催生技术的不断发展变化,这些变化对每一个卷入IT产业的组织和人员都提出了挑战。  企业如何才能迅速响应市场变化带来的挑战呢?开发者如何才能迅速应对企业的新需求呢?在面对新技术时,如何将教学工作与新技术迅速衔接起来呢?  为了保持竞争优势并更迅速地响应市场变化,人员的技术知识和企业的业务必须保持流程的一致性,以实现更大的柔性和扩展性,而这一切必须建立在一个“坚实恒定”的基石之上才能说有可靠的技术保证。  在“开发王”这套技术丛书中,每一个参与者都将看到这块“坚实恒定”的基石,这个基石被称为“完整系统的万维网知识体系”,在这个基石之上实现的柔性和扩展性必然是可持久、可度量的,且可以应对迅速的变化。  完整系统的万维网知识体系针对变化提供了更多机会,无论变化多么复杂、多么迅速,“开发王”都能够帮助简化它们,从而轻松获取竞争优势。  从此,变化不再令人苦恼,相反它为你带来一系列机遇:灵活性、业务一致性,当然,还有竞争优势,不管是对个人,还是对组织……  作者的话  从开始准备写作到本套书的出版,前后经历了近6年的时间,也经历了多个软件版本变迁,以及万维网的沉沉浮浮,在这紧张的几十个月后,本套书终于得以问世。我希望能通过本书给万维网应用程序开发者和设计者带来无限广阔的、基本的、正确认知和完整系统的网络开发知识。  本书在写作过程中参考了“大量”的参考资料,包括数十份标准和规范,也包括作者多年创作和开发体验的结晶,所有范例也都经过了严格的测试,从而确保了内容准确翔实。  文章中提出的任何观点和主张都必须经得起事实的考验。  虽然如此,错误和不足也在所难免,恳请读者不吝赐教和指正,我们一定会全力改进,在以后的工作中加强和提高。  本书在创作和出版的过程中得到了电子工业出版社易飞思公司的大力支持,感谢他们在图书的设计及内容审定方面所给予的指导,同时也感谢为本书的出版而努力工作的出版社其他工作人员。  怎样阅读这套书  这套书的知识结构(包括范例),前后衔接的逻辑非常紧密,所以,这里特别提示用户不要试图跳跃章节阅读,这将恐怕使你欲速而不达。  保持与作者沟通  有时与作者沟通是十分必要的,用户可以从作者处获取知识的更新,或者勘误(如果书中有的话),同时也可以让作者了解到你的想法。

内容概要

本书完全按照HTML 4.01规范要求编写,详细介绍如何使用HTML语言创作网页,并且介绍如何将网页聚合起来架设网站。HTML语言有严格的逻辑,是完整系统的互联网知识体系的一部分。本书亦包含XHTML 1.0规范的全部内容。  本书以最新的技巧,教读者轻松掌握HTML语言;并按照下面的逻辑认知顺序进行讲授:什么是HTML语言(what),为什么学HTML语言(why),以及怎样使用HTML语言(how)。这样是为了先帮助用户建立首要的、基础的正确认知,而后以深入浅出的实例来说明如何利用HTML语言制作网页(即通过一个完整的网上餐厅案例,循序渐进地指导读者怎样将HTML网页集合起来架设网站,并通过这一范例了解上载、更新和管理网站的技能)。  本书适合网络开发工程师、网页设计师,以及学校的相关任课教师和学员。网页设计师,可以从本书学习到更为高级的网页设计应用技巧,进而加强功力;程序开发者,也可以从本书学习到最为正统的HTML知识,从而避免错误认知和混乱。

作者简介

张亚飞是现今活跃在信息技术领域的卓越作者。正如读者过去所看到的那样,他建立了一整套基于时间轴的完整系统的Flash知识体系,这个知识体系已经使很多Flash开发者和设计者受益。今天,他从纷繁复杂的乱象中抽象出真知,构建了一整套完整系统的万维网应用程序开发的知识体系

书籍目录

第1篇  HTML基础入门篇 第1章  建立首要的、基础的正确认知      1.1  Internet和万维网       1.1.1  什么是WWW(万维网)       1.1.2  W3C是什么      1.2  网页、浏览器、网站和网络服务器       1.2.1  网页和浏览器       1.2.2  不可不知的浏览器发展史       1.2.3  浏览网页       1.2.4  网站和网络服务器      1.3  了解HTML语言       1.3.1  关于HTML和HTML编辑器       1.3.2  创建第一个网页       1.3.3  查看网页的源文件      1.4  HTML 4.0的特点       1.4.1  国际化       1.4.2  可访问性       1.4.3  表格       1.4.4  混合文档       1.4.5  样式表       1.4.6  脚本       1.4.7  打印      1.5  巩固与自测     第2章  HTML文档的基本结构      2.1  使用Dreamweaver创建第一个网页       2.1.1  Dreamweaver安装和配置向导       2.1.2  使用Dreamweaver创建网页的基本步骤       2.1.3  使用Dreamweaver的基本知识      2.2  HTML文档的基本结构       2.2.1  了解SGML和HTML的关系       2.2.2  HTML简要的历史和为何要使用HTML       2.2.3  HTML 4.01的版本和文档类型声明       2.2.4  标签对和属性       2.2.5  标签对       2.2.6  标签对      2.3  巩固与自测     第3章  HTML文档的编写规范      3.1  使用标签、元素和属性       3.1.1  标签       3.1.2  元素       3.1.3  属性的定义       3.1.4  属性值的定义       3.1.5  元素和属性的大小写规范       3.2  字符引用       3.2.1  字符数字引用       3.2.2  字符实体引用      3.3  使用注释      3.4  关于空白和空白字符       3.4.1  关于断行符       3.4.2  空白字符      3.5  基本HTML数据型式       3.5.1  CDATA数据类型       3.5.2  ID和NAME使用的数据类型       3.5.3  IDREF和IDREFS使用的数据类型       3.5.4  NUMBER数据类型       3.5.5  文本字符串       3.5.6  使用URI       3.5.7  使用颜色       3.5.8  使用长度       3.5.9  内容类型(MIME类型)       3.5.10  语言代码       3.5.11  字符编码       3.5.12  单字符       3.5.13  日期和时间       3.5.14  链接类型       3.5.15  介质描述符       3.5.16  脚本数据       3.5.17  样式表数据       3.5.18  框架目标名       3.6  巩固与自测    第2篇  HTML详细学习篇 第4章  HTML文档的头部定义      4.1  定义标题(title元素)      4.2  怎样定义元数据       4.2.1  定义元数据关键字       4.2.2  元数据的语言信息       4.2.3  元数据的其他定义方法      4.3  用于搜索引擎的元数据       4.3.1  定义编辑工具       4.3.2  定义版权信息       4.3.3  定义关键字       4.3.4  定义概要描述       4.3.5  定义设计者       4.3.6  定义创作日期       4.3.7  定义搜索引擎搜索方式      4.4  用于HTTP消息报头的元数据(属性http-equiv)       4.4.1  设置网页内容类型和字符集       4.4.2  设置网页所使用的语言       4.4.3  设置网页定时跳转       4.4.4  设置网页禁用缓存       4.4.5  设置网页到期       4.4.6  设置网页Cookie存活时间       4.4.7  设置网页框架目标       4.4.8  设置网页转场效果       4.4.9  设置网页分级      4.5  元数据纲要和元数据架构       4.5.1  使用元数据纲要(profile属性)       4.5.2  使用元数据架构(scheme属性)      4.6  巩固与自测     第5章  文字与段落      5.1  结构化的文本       5.1.1  用于强调的短语元素(em元素、strong元素、cite元素)       5.1.2  用于缩写的短语元素(abbr元素、acronym元素)       5.1.3  其他的短语元素(dfn、code、samp、kbd、var)       5.1.4  引用(blockquote元素、q元素)       5.1.5  下标和上标(sub元素、sup元素)      5.2  行和段落       5.2.1  段落(p元素)       5.2.2  控制换行(br元素)       5.2.3  连字符       5.2.4  预格式化文本(pre元素)       5.2.5  段落的视觉呈现      5.3  标题字体(h#元素)      5.4  标记文档改变:ins和del元素      5.5  基本文字格式(tt、i、b、big、small、strike、s、u)      5.6  字体修改(font、basefont元素)       5.6.1  改变字体大小(size属性)       5.6.2  改变文本颜色(color属性)       5.6.3  改变字体(face属性)      5.7  加入水平分割线(hr元素)       5.7.1  分隔线宽度和高度(width属性、size属性)       5.7.2  分隔线对齐(align属性)       5.7.3  分隔线颜色(color属性)       5.7.4  分隔线阴影(noshade属性)      5.8  巩固与自测     第6章  建立列表      6.1  创建列表       6.1.1  有序列表(ol元素)       6.1.2  无序列表(ul元素)       6.1.3  解说列表(dl元素)       6.1.4  嵌套列表       6.1.5  列表的紧凑显示(compact 属性)      6.2  定制列表前的符号       6.2.1  定制无序列表符号(type属性)       6.2.2  定制有序列表中的序号(type属性)       6.2.3  定制有序列表中的列表项的起始数(start属性)       6.2.4  定制有序列表中的列表项序号的数值(value属性)      6.3  使用dir和menu元素来定义列表      6.4  巩固与自测     第7章  建立超链接      7.1  链接的基础知识      7.2  了解文档位置和路径       7.2.1  绝对路径       7.2.2  文档相对路径       7.2.3  区分URI、URL和URN       7.2.4  区分本地链接和服务器链接      7.3  使用a元素定义链接       7.3.1  定义链接的目标URI(href属性)       7.3.2  定义链接的目标窗口(target属性)       7.3.3  定义链接的提示信息(title属性)       7.3.4  国际化和链接(hreflang属性和charset属性)       7.3.5  链接到其他网站       7.3.6  链接到您的网站中的其他网页       7.3.7  链接到电子邮件地址       7.3.8  链接到任何类型的文件以供下载       7.3.9  创建空链接和脚本链接       7.3.10  链接的创建与管理        7.4  定义书签和链接到书签       7.4.1  定义命名锚点(id属性和name属性)       7.4.2  链接到命名锚点      7.5  文档关系链接(link元素)       7.5.1  定义关系链接地址(href属性)       7.5.2  向前链接或者反转链接(rel和rev属性)       7.5.3  链接到外部样式表       7.5.4  使用link元素说明文档集合关系       7.5.5  链接到文档的替代版本       7.5.6  链接到文档的版权声明       7.5.7  链接到文档的帮助       7.5.8  链接到文档中的书签      7.6  link元素和搜索引擎      7.7  定义基准地址(base元素)       7.7.1  使用基准URI       7.7.2  用户浏览器如何决定相对URI       7.7.3  定义基准链接目标窗口(target属性)      7.8  巩固与自测     第8章  链入图片和混排图文      8.1  了解图片       8.1.1  了解GIF格式图片       8.1.2  了解JPEG格式图片       8.1.3  了解PNG格式图片       8.1.4  创建图片       8.2  链入图片(img元素)        8.2.1  图片的源地址(src属性)       8.2.2  图片的幅面大小(width属性和height属性)       8.2.3  图片的说明(alt属性、longdesc属性)       8.2.4  图片的边框(border属性)       8.2.5  图片的占位符       8.2.6  图片和文字的对齐(align属性)       8.2.7  图片的水平间距和垂直间距(hspace属性和vspace属性)      8.3  为图片建立超链接(img元素)      8.4  创建图像映射       8.4.1  了解热点和图像映射       8.4.2  关于客户端图像映射和服务端图像映射       8.4.3  创建图像映射(map元素、area元素)       8.4.4  设置热点默认链接       8.4.5  创建服务端图像映射       8.4.6  客户端图像映射和服务端图像映射混合      8.5  飘浮对象和图文混排       8.5.1  飘浮对象的定义       8.5.2  飘浮对象周围的文本的流动      8.6  巩固与自测     第9章  使用表格      9.1  了解表格       9.1.1  表格用来做什么       9.1.2  了解行、列和单元格      9.2  创建表格       9.2.1  创建表格的基本语法(table元素、tr元素、th元素、td元素)       9.2.2  设置表格边框线条宽度(border属性)       9.2.3  设置表格宽度(width属性)       9.2.4  表格在页面中的对齐(align属性)       9.2.5  表格的描述(summary属性)       9.2.6  表格的背景色(bgcolor属性)       9.2.7  表格中单元格的间距和衬距(cellspacing属性、cellpadding属性)      9.3  表格的标题(caption元素)      9.4  设置单元格(th元素、td元素)       9.4.1  使用th元素定义单元格       9.4.2  跨多行、多列的单元格       9.4.3  单元格的背景色彩       9.4.4  单元格的宽度和高度      9.5  表格的按行分组显示(thead元素、tfoot元素、tbody元素)      9.6  表格的按列分组显示(colgroup元素、col元素)       9.6.1  创建列分组(colgroup元素)       9.6.2  使用span属性指定列分组       9.6.3  为列分组定义列宽(width属性)      9.7  表格边框和分隔线的呈现(frame属性、rules属性)       9.7.1  表格中边框线的显示(frame属性)       9.7.2  表格中分隔线的显示(rules属性)      9.8  单元格内内容的对齐       9.8.1  单元格对齐属性       9.8.2  对齐的继承       9.8.3  轴线(axis属性)      9.9  巩固与自测     第10章  建立HTML表单      10.1  认识和建立HTML表单       10.1.1  建立表单(form元素)       10.1.2  了解控件       10.1.3  控件类型      10.2  使用input元素创建表单控件       10.2.1  创建文本框和密码文本框       10.2.2  创建复选框       10.2.3  创建单选按钮       10.2.4  创建提交按钮       10.2.5  创建重置按钮       10.2.6  创建图形按钮       10.2.7  创建普通按钮       10.2.8  创建文件选择框       10.2.9  创建隐藏控件      10.3  使用button元素创建按钮      10.4  组合框控件和列表框控件       10.4.1  创建组合框控件和列表框控件       10.4.2  成组选项       10.4.3  关于预先选定选项      10.5  创建多行文本框(textarea元素)      10.6  使用isindex元素创建文本框      10.7  为表单控件定义标签(label元素)      10.8  为表单添加结构(fieldset元素和legend元素)      10.9  将焦点移到某个元素上       10.9.1  使用【Tab】键导航       10.9.2  使用热键导航       10.10  设置禁用控件和设置只读控件       10.10.1  设置禁止控件       10.10.2  设置只读控件      10.11  表单提交       10.11.1  表单提交的方法       10.11.2  结果良好的控件       10.11.3  浏览器怎样发送表单数据       10.11.4  表单内容的类型      10.12  巩固与自测     第11章  使用框架集结构      11.1  框架集的基本语法       11.1.1  框架文档声明       11.1.2  纵向排列框架和横向排列框架(rows属性、cols属性)       11.1.3  嵌套框架集       11.1.4  不显示框架时(noframes元素)      11.2  框架窗口的内容和外观(frame元素)       11.2.1  设置框架的初始内容       11.2.2  框架窗口边框线的设置       11.2.3  页面空白       11.2.4  滚动条设置       11.2.5  改变框架窗口大小       11.2.6  框架的描述(title属性、longdesc属性)      11.3  使用目标框架(name属性和target属性)       11.3.1  设置链接默认的目标       11.3.2  目标的优先级       11.3.3  名称和框架标识      11.4  内联框架(iframe元素)      11.5  巩固与自测     第12章  链入对象和其他多媒体元素      12.1  使用Java Applet(applet元素)       12.1.1  安装Java运行时环境       12.1.2  准备Java Applet应用程序       12.1.3  链入Java Applet应用程序      12.2  使用object元素链入对象       12.2.1  为何要使用object元素       12.2.2  了解对象、数据和实现       12.2.3  使用通用的链入方法(object元素)       12.2.4  将object元素置于head元素内       12.2.5  渲染对象的规则       12.2.6  内联数据vs外部数据       12.2.7  对象初始化(param元素)       12.2.8  对象的全局命名机制       12.2.9  对象的声明和实例化      12.3  使用object元素链入对象实践       12.3.1  链入Java Applet       12.3.2  链入Flash影片(SWF)       12.3.3  链入QuickTime影片(MOV)       12.3.4  链入AVI、MPEG影片       12.3.5  链入Real影片(RM和RMVB)       12.3.6  链入MP3、WMA音频       12.3.7  链入Shockwave影片(DIR)       12.3.8  关于嵌入的HTML文档      12.4  链入对象的呈现       12.4.1  对象的宽度和高度       12.4.2  对象的水平间距和垂直间距(hspace属性和vspace属性)       12.4.3  对象的边框       12.4.4  对象的对齐       12.4.5  定义替换文本      12.5  使用object元素创建图像映射       12.5.1  使用a元素定义热点       12.5.2  为内嵌元素定义热点      12.6  巩固与自测     第13章  使用脚本语言      13.1  了解脚本语言       13.1.1  客户端脚本       13.1.2  服务端脚本      13.2  在HTML文档中使用脚本代码       13.2.1  使用script元素定义脚本代码       13.2.2  在内建事件中定义脚本       13.2.3  在超链接中定义脚本       13.2.4  定义脚本语言       13.2.5  动态修改文档       13.2.6  认识DHTML      13.3  浏览器不支持脚本是应注意的问题       13.3.1  noscript元素       13.3.2  隐藏脚本数据      13.4  巩固与自测    第3篇  网页呈现进阶和网页布局篇 第14章  HTML网页呈现和网页国际化      14.1  键入文字和使用字符编码(charset属性)       14.1.1  计算机文字字符编码简介       14.1.2  使用HTML文档字符集和选择字符编码       14.1.3  指定字符编码       14.1.4  字符编码的优先级       14.1.5  在HTML文档中使用字符引用      14.2  指定文档内容的语言(lang属性)       14.2.1  语言代码       14.2.2  语言代码的继承       14.2.3  浏览器对语言代码的解释      14.3  定义文本和表格的方向       14.3.1  Unicode规范定义的文本字符方向       14.3.2  Unicode双向运算法则       14.3.3  文本方向的继承       14.3.4  使用bdo元素忽略双向运算法则       14.3.5  表格的方向      14.4  body元素用于全局呈现      14.5  网页国际化和区域化的相关名词      14.6  巩固与自测     第15章  应用样式表呈现和布局      15.1  为什么要使用样式表       15.1.1  过去的不足和样式表的优点       15.1.2  了解CSS(层叠样式表)       15.1.3  HTML 4对样式表技术的支持      15.2  添加CSS样式到HTML网页       15.2.1  设置默认的样式表语言       15.2.2  内联样式       15.2.3  定义嵌入的样式表(style元素)      15.3  使用外部样式表       15.3.1 “可替换样式表”和“偏好样式表”       15.3.2  指定外部样式表       15.3.3  样式表的声明语句       15.3.4  使用HTTP消息报头链接到样式表      15.4  层叠样式表       15.4.1  基于介质的层叠       15.4.2  继承和层叠      15.5  隐藏样式数据      15.6  了解块级元素和行内级元素       15.6.1  块级元素和行内级元素的不同       15.6.2  关于div元素和span元素       15.6.3  元素标识(id属性和class属性)      15.7  巩固与自测     第16章  应用表格和框架布局      16.1  使用表格进行网页设计和布局的方法       16.1.1  了解布局模块       16.1.2  表格布局的方法       16.2  在Dreamweaver中使用表格       16.2.1  在“布局”模式下使用表格进行网页布局       16.2.2  在“布局”模式下修改网页布局       16.2.3  设置“布局”模式的首选参数       16.2.4  将内容添加到布局单元格中      16.3  使用嵌套表格进行网页布局实务       16.3.1  通过嵌套表格实现布局       16.3.2  怎样在文本周围保留空白区域       16.3.3  怎样设置复杂的边缘饰纹       16.3.4  布局的最后润色      16.4  使用框架进行网页布局实务       16.4.1  框架和表格的关系       16.4.2  在Dreamweaver中使用框架      16.5  巩固与自测    第4篇  创建和发布网站篇 第17章  网页、网站和网络应用程序      17.1  安装和设置网络应用程序的运行环境       17.1.1  安装IIS       17.1.2  安装PWS       17.1.3  通过服务器请求网页      17.2  Web服务器根目录和虚拟目录       17.2.1  Web服务器根目录       17.2.2  虚拟目录       17.2.3  启用默认文件      17.3  巩固与自测     第18章  HTML完整应用——创建网上餐厅网站      18.1  怎样开发网站      18.2  规划设计网站       18.2.1  规划网站的结构       18.2.2  创建网站      18.3  风格设计和页面布局       18.3.1  注意事项       18.3.2  设计网页布局       18.3.3  使用框架和表格实现布局       18.3.4  实现主页默认中间模块      18.4  浏览产品       18.4.1  创建产品列表网页       18.4.2  创建产品详细信息      18.5  实现顶部广告模块     第19章  发布和管理网站      19.1  设置Dreamweaver站点       19.1.1  了解Dreamweaver站点       19.1.2  创建新的Dreamweaver站点       19.1.3  编辑Dreamweaver站点设置      19.2  整理站点       19.2.1  检查无效链接       19.2.2  验证语法是否有误      19.3  上传和更新的管理       19.3.1  使用FTP服务器建立上传网站空间       19.3.2  虚拟主机       19.3.3  管理和上传网站       19.3.4  管理局域网站点    附录A  从HTML 4到XHTML     A.1  XML的知识准备        A.1.1  书写XML文档      A.1.2  有效的XML文档      A.1.3  使用命名空间     A.2  XHTML语法入门      A.2.1  XHTML文档结构      A.2.2  XHTML文档标签语法     A.3  XHTML和HTML 4的不同点      A.3.1  文档必须格式良好      A.3.2  元素和属性必须使用小写字母      A.3.3  属性定义必须严格符合要求      A.3.4  Script和Style元素      A.3.5  SGML禁止      A.3.6  使用lang和xml:lang属性      A.3.7  使用字符编码      A.3.8  包含id和name属性的元素      A.3.9  使用isindex      A.3.10  使用逻辑属性      A.3.11  文档对象模型和XHTML      A.3.12  层叠样式表和XHTML      A.3.13  不要在注释内容中使“—”      A.3.14  使用十六进制数字引用      A.3.15  预定义属性值必须区分大小写     A.4  转换HTML 4为XHTML    附录B  HTML的字符实体引用和数字引用对照表    附录C  用HTML 4.0制作文档应遵循的一般性原则    附录D  使用微软个人服务器PWS     D.1  安装PWS     D.2  配置PWS      D.2.1  主屏      D.2.2  高级      D.2.3  其他    附录E  关于网页安全色    附录F  HTML自然语言及语言代码对照表    附录G  常用字符集速查表    附录H  HTML标签对的使用及元素可用属性速查手册    附录I  HTML属性及可附着元素速查手册    附录J  参考答案     第1章     第2章     第3章     第4章     第5章     第6章     第7章     第8章     第9章     第10章     第11章     第12章     第13章     第14章     第15章     第16章     第17章    附录K  参考文献及资料来源

章节摘录

  第1章 建立首要的、基础的正确认知  用户要学习HTML,必须首先了解万维网、网页和HTML的关系。万维网是由无数的网页组成的,这些网页由HTML语言编写,这是万维网、网页和HTML三者之间的基本关系。所有的网页——无论是动态网页还是静态网页,都是最终形成HTML语言并为浏览器所解释的,所以,用户要学习网络设计和开发,首先必须熟悉HTML语言。  HTML语言,全称是HyperText MarKup LangLLage(超文本标签语言),其实是一个规范(或者称为标准),它由W3C制定,而为参与万维网的创作者和软件厂商所遵守。  创作者一般是指网页(包括图形等多媒体文件)的创建者,如正在学习本书的你,将会使用HTML语言创作网页;而软件厂商一般是指开发网页浏览工具的厂商,如开发Internet Explorer浏览器软件的微软公司,它们将会开发浏览器等终端设备解释网页。

编辑推荐

  “在正确与错误之间做抉择并不艰难,打开前言,将抉择权把握在自己手中。”  建立正确的认知、完整系统的知识体系。在文章中提出的任何观点和主张都必须经得起事实的考验。  究竟什么是正确的HTML网页,让本书来给你答案;完全范例讲解,通俗易懂,循序渐进,学习效率和效果最佳;范例完全通过W3C推荐验证程序验证,真正使你的网页完全符合行业标准;完全涵盖HTML4.01和XHTML1.0,真正全面准确地学习网页语言;透析HTML网页内核,内容和样式的真实内涵,为网络开发奠定正确的基石;完全实战网站架设和维护,最符合团队协作要求,提高工作效率,让你可以完全满足雇主的需求。  “开发王”系列图书是张亚飞从业互联网以来出版的首套完整系统的网络开发图书,它也是国内第一套完整系统的万维网网络开发图书。张解释说:这套书一直是他计划中的一部分,经过近6年的准备、编写和测试才完成这套心血力作,在还没有完全满意之前他不会轻易发表作品,就像他以前做的那样!他希望在10年后再看这套书时,人们还会说这是一套”很棒的开发图书”。而现在正是发表这套图书的好时机,因为一切都已准备就绪!  ——田蕾

图书封面

图书标签Tags

评论、评分、阅读与下载


    HTML开发王 PDF格式下载


用户评论 (总计5条)

 
 

  •   之前在网上学了html,这本书买了没怎么看,买来的目的就是放在那里,没事翻一下,巩固一下。
  •   总体来说,还好,需要花时间看
  •   我觉得说得还比较详细
  •   不知道是什么时候的书了页面都不是纯的白色了
  •   想自学的可以看看
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7