基本信息
- 原书名:HTML 5 hacks
- 原出版社: O'Reilly Media
- 作者: (美)Jesse Cravens Jeff Burtoft
- 译者: 豆葆坤
- 出版社:电子工业出版社
- ISBN:9787121217029
- 上架时间:2015-10-13
- 出版日期:2013 年4月
- 开本:16开
- 页码:481
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > 网络编程 > HTML
编辑推荐
亚马逊五星畅销图书!
通过 90 个实例向读者介绍了 HTML5 规范集合。
对于初学者,它可以用来作为构建基于浏览器应用的基础。对于中级或者高级开发者,它可以用来快速了解那些还没有接触到的规范。
本书不仅关注前端表现和交互层,而且关注服务器端的连接层。所以本书不仅适合前端开发人员阅读,而且适合服务器后端开发人员阅读,是你成为全栈工程师(Full Stack Developer)必备的一本书。
内容简介
计算机书籍
《HTML5敏捷实践》共分10章,包括了HTML5中的语义化、新的样式、多媒体支持、新的图形实现方式、更易用交互功能、浏览器客户端存储、地理定位、Web Worker API、Node.js 服务器端开发等方面。贯穿全书,作者都在解释HTML5规范的发展方向和目前规范的成因,这让读者更容易理解和正确应用这些规范。作者还向读者提供了很多非常实用的开发思想,例如分而治之、前后兼容等。本书提供了90个实用的例子,为开发者遇到的常见实际问题提供了比较优雅的解决方案。全书内容源于两位资深工程师的工作经验,贴近开发者的实际需要。
《HTML5敏捷实践》可以作为HTML5规范的学习教材,也可以作为前端工程师和服务器端工程师开发HTML5应用的必备工具书。
作译者
Jeff Burtoft是微软公司的HTML5传教士,以推广HTML5和JavaScript技术闻名,他在网页应用开发社区拥有十几年的经验。他的工作经历很丰富,从创业公司的网络管理员到财富500强公司的首席前端工程师,他都曾供职。
目录
第1章 用语义化的方式实现 1
实例01 使用正确的[DOCTYPE]来简化你的网页 1
实例02 采用常见结构 2
实例03 使你的HTML5新标签在旧的浏览器里正确渲染 5
实例04 新定义的[INPUT]标签 11
实例05 不使用JAVASCRIPT实现表单验证 16
实例06 使用新控件提高表单的易用性 24
实例07 新的DOM事件 37
实例08 在标记上添加丰富的上下文数据 40
实例09 使用自定义数据跟踪用户事件 44
实例10 使机器人和人类能够像微数据一样访问你的页面 47
第2章 使用样式 53
实例11 通过浏览器前缀实现试验期CSS功能 54
实例12 使用自定义网络字体设计页面 56
实例13 使用GOOGLE网络字体来实现简单的@FONT-FACE 61
实例14 使用CSS3的字体特效美化页面 70
实例15 不改变透明度来让元素显得透明 73
实例16 使用MEDIA QUERY来实现响应式设计 76
实例17 使网页应用响应设备的方向变化 81
译者序
最近以硅谷为首的开发社区提出一个名词:全栈工程师(FullStackDeveloper),是指可以掌握Web开发各个方面的工程师,不仅需要熟悉服务器后端项目的开发和部署,而且需要熟悉前端的开发和部署。本书就是你成为全栈工程师必备的一本书。因为它不仅关注前端表现和交互层,而且关注服务器端的连接层。所以本书不仅适合前端开发人员阅读,而且适合服务器后端开发人员阅读。HTML5可以说是最近10年Web开发领域最大的变革。HTML5不是将来时,而是进行时。本书的作者为一线互联网公司的资深开发工程师,因此更容易从实际开发的角度审视HTML5在当前实际项目中的使用方式。本书通过90个实例向开发者展示了HTML5各个功能在实际项目中的使用方式。本书不仅注重实际应用,而且注重介绍一种应用HTML5的思想,那就是通过回退(Fallback)支持老旧浏览器。即使HTML5还没有最终完成,各个浏览器的实现对HTML5的支持还不完善,你也可以开始在项目中使用这些技术。本书还提供了一种分而治之的思路来解决复杂的问题。与服务器端可控的开发环境不同,前端开发需要考虑到各个浏览器使用的环境,不仅各个厂商的浏览器对标准的实现不一致,移动设备中的浏览器的带宽、CPU处理能力以及电池的消耗也各不相同。本书考虑了所有这些问题,并且在每个实例中都提供了一种拿来即用的“最佳实践”。本书原书名为“HTML5Hacks”,中文书名取“Hack”中“敏捷”的含义,“敏捷”的含义不完全等同于“敏捷开发”中“敏捷”的含义:又因为本书内容很注重实践,在实际项目中使用HTML5技术,故书名译为“HTML5敏捷实践”。
本书不仅可以作为系统了解HTML5规范的实例教材,而且可以作为在实际项目中改善原有互联网应用性能的参考书。
由于水平和时间有限,译稿中难免存在错误。如果你行技术或者文字方面的问题,欢迎致信doubaokun@gmail.com,我会尽力解答。
豆葆坤
2013年4月于北京
前言
为了在这个背景下理解HTML5,首先需要理解的是HTML5并不是一项添加到网页应用上的简单技术。在HTML5技术集合中有超过30项不同的规范,各项规范的成熟度不同。此外,主要浏览器厂商对各个规范的采用和实施方式也不同。
网页应用开发者会根据业务需求选择合适的HTML5功能,以提高应用的性能。最终在流行网页应用中实际使用的很可能只是其中很少的几项规范。
批评家经常说,必须要等到HTML5被百分之百支持后,才能在项目中使用。这明显是不正确的。很多HTML5规范已经非常成熟,并且在流行的浏览器中已经被完全实施了。但是有些规范还处于开发早期,或者主流浏览器厂商对其不太支持。了解所使用的规范类型很重要。虽然研究这些规范会有帮助,但是唯一正确的学习方法是在所有的浏览器里测试你的应用。
对于那些新的或者还没被很好支持的规范,有一些聪明的开发者已经开放了免费且开源的工具为老式浏览器提供shim和polyfill。正如Remy Sharp定义的那样:“polyfill或者polyfiller是可以模拟浏览器的某些原生功能的一段代码(或者一个插件),并且可以提供一致的开发接口。”据我看来,最好的polyfill是不需要开发者知道某一功能是否是由浏览器原生提供的,它会在后台提供必要的支持,对于用户和开发者都是透明的。在大部分情况下,每项HTML5规范都有一个或者多个可以使用的、互相竞争的polyfill。你会在本书中看到多种网络上流行的高效的polyfill。
为什么学习HTML5
初学者也许会有这样的疑问:“为什么需要关心HTML5?”不幸的是,这个问题没有一个简单的答案。即使是一些资深的开发者也会根据他们熟悉的功能给出不同的答案。
但是总体而言,有一些功能集合是大部分开发者都认可的流行的功能。在HTML5出现之前,网页应用从来都没被当做原生桌面应用或者移动应用的竞争者。自从HTML5出现以来,网页应用才被认为是一项易于部署的、跨平台的应用平台方案。然而,由于缺少一些重要业务功能,如性能、安全和图形,HTML5受到了束缚。如果流行的浏览器能够成为一个成熟的应用平台,开发者就可以不再针对不同平台开发原生应用了。
通过XMLHttpRequest对象、JSON传输格式,以及浏览器上各种JavaScript类库的爆发(很多类库都提供了ployfill支持),Ajax技术革命提供了异步的、后台执行的服务器端更新,将网页应用世界带到了正确的道路上。然而,HTML5的目标是在流行的浏览器中为复杂应用开发提供原生的功能支持。为了实现这个目标,很多功能还需要改进,例如维护浏览器历史、异步交互过程中的书签、跨域通信、本地存储、离线支持、丰富的图形支持、为了改进速度和效率的新连接层协议等。
HTML5的实现
作为一个渴望使用本书中介绍的特性实现新功能的开发者,有必要理解这一点:很多HTML5规范还处于试验和开发期。写作本书的一大挑战就是要与不断进化的规范保持同步。
接下来的几个话题对于学习试验期的浏览器规范很重要。
浏览器前缀
为了让浏览器厂商能够实施试验期的特性(通常在规范完成之前实施),浏览器厂商需要在这个特性标识之前添加“前缀”,表示这只是针对特定浏览器的功能。一个很好的例子就是requestAnimationFrame的实施方式,它是在浏览器中为页面添加动画效果的JavaScript方法。最初实施这一功能的浏览器前缀如下:
requestAnimationFrame
webkitRequestAnimationFrame
mozRequestAnimationFrame
oRequestAnimationFrame
msRequestAnimationFrame
浏览器前缀在CSS中很常见。推荐你阅读第2章的引言,了解浏览器前缀是如何在CSS中实现的。