本节书摘来自异步社区《html5和css3快速参考》一书中的第1章,第1.1节,作者: 【美】sergey mavrody 更多章节内容可以访问云栖社区“异步社区”公众号查看。
本书简介
在web世界中,html和css无疑是最重要、最基本的两种语言了,它们一同支撑起了当下绝大部分的web站点和web应用程序。而最新的html5被认为是web的未来,它为我们提供了一系列简单的富互联网应用服务(rich internet application)1插件功能,以及更容易的开发方式和更好的用户体验。
今天,我们总能在网络上找到各种关于html5的参考资料、教程及相关技巧,其中也不乏一些重点讨论html5某些具体特性的书籍。但我们总会觉得缺少一本信息全面而简洁的便捷型参考书。
而本书就是这样一部为专业web设计人员及开发人员准备的技术词典。这里汇总了3 000多页的(x)html5和css3的标准规范,其中涵盖了那些最基本的通用概念和规范,包括标签、属性、属性值、对象及其属性与方法、事件以及一系列api。
我们将会涉及以下话题:
html5概述;
html及xhtml5的语法规则;
文档语义结构;
html5元素及其属性汇总;
html5表单;
全局属性与事件;
css3属性汇总;
html5 api,包括canvas、svg、video、audio、web workers、web sockets、microdata、geolocation、web storage等。
总之,作者的目标是构建出一份全面的、一站式(one-stop)的信息参考资料库,并同时力求简明易读、结构清晰。
什么是html
众所周知,“html”是超文本标记语言(hypertext markup language)的首字母缩写。它是互联网(world wide web)中最主要的标记语言,通常用来表示组成web文档的各种结构元素,其中包括文档头、段落、表格、页脚等。
除此之外,html标签通常会结合css(cascading style sheets,层叠样式表)技术来展现其要表述的可视化内容。css可以帮助我们将一些可视化元素与具体的html内容分隔开来,例如图层、颜色、字体等。
html还允许我们在页面中内嵌交互式表单、图片、视频、音频等对象。此外,我们还可以在html代码中嵌入类似于javascript脚本这样的代码文件,这能赋予相关页面某种动态化行为。
html的主要版本
第一份html文档叫作“html tags”,由berners-lee于1991年发布。
html 4.0是由国际互联网协会(w3c)于1997年发布的。该规范为我们提供了三种不同层次的选项,分别为transitional、strict及frameset。
xhtml 1.0规范代表的是一个更为严格的html标记子集,发布于2000—2002年。它主要沿袭了xml文档的语法规则。
xhtml 2.0工作草案是2002—2006年间陆续发布的。由于该标准在制定过程中总试图与过去彻底决裂,牺牲了大量的向后兼容性,因而最终导致w3c决定停止这一标准草案的所有开发工作,从而将目标转向了更为灵活的html5标准。
html5的第一份草案由w3c于2008年公开发布。
xhtml5的开发工作是从2009年以后开始的。
html5
html5的开发工作始于2004年whatwg小组(web hypertext application technology working group,网页超文本应用技术小组)的一次非正式专家会议。该专家小组由apple电脑、mozilla基金会以及opera软件的专家共同组成。并且由来自google公司的ian hickson负责领导html5的标准制定工作,最终于2007年向国际互联网协会(w3c)提交并通过了whatwg版的html5规范。
比起xhtml 2.0,html5标签能够更好地实现对html 4与xhtml 1.0的向后兼容。
html5引入了许多新的元素,包括一些用于语义替换(semantic replacements)的一般性html元素,例如新的布局元素、、、、等。同时,该标准也弃用了许多html 4中的元素,即不再鼓励使用它们。
html5还引入了许多额外的插件功能,例如标准化的视频与音频接口、栅格图像、本地型数据库、离线模式、多线程javascript脚本以及跨文档通信等。
xhtml5
xhtml5是html5被xml化后的产物,该型文档严格支持xml mime(如application/xhtml+xml)。此外,xhtml5在语法上也有更严格的要求。在xhtml5文档中,html5的文档声明通常是可以省略的。而且我们还可以通过这种扩展,对html5页面使用某些基于xml的技术,例如svg和mathml。
css3
新版css的引入,更是进一步保证了我们在模块发布方面的灵活性。css3的新特性所涵盖的范围非常广,主要包括:
选择器选择元素的方式将更为具体,包括对属性与属性值的匹配能力、用于结构化元素的伪类、用于url类标签的伪类、用于选择类元素标签(例如radio、checkbox等元素)的伪类等。
一些文本效果与布局样式,包括链接文本、“空白”符2以及说明性文本等样式。2
某些用于媒体分页和内容生成的工具。在媒体分页方面,它有了更多的选项,例如页眉、页脚、页码、脚注以及交叉引用等。
其多列布局(multi-column layout)属性为网页提供多列式布局的能力。
它还提供了专门用于首字母以及首行的伪类。
ruby模块还提供了为单词加注下标的能力,这适用于某些亚洲地区的脚本。