前言:
HTML介绍分为3部分,第一部分是HTML简介及历史,第二部分是HTML元素,第三部分是实战及学习笔记。
以下是第一部分:
参考资料:
w3.org, html 文档
简介
HTML,即Hypertext markup language是万维网的核心标记语言,最初HTML被设计作为一门语言,用于语言描述科学文档,后续则被拓展用于描述一系列不同类型的文档,甚至应用。
发展历史:
1990-1995,迅速发展,从CERN到IETF(国际互联网工作组)接管.
1995-1997, 随着W3C建立,又变成由W3C主导,期间推出了HTML 3.2 和HTML 4.01
1998-2000,W3C停止HTML版本推进,开始研究XHTML 1.0(XML-based HTML 4.01), 其没有添加任何新特性,反而更加地长篇累牍,更严格的检测标准等。后续发布了XHTML 2.0,其与XHTML 1.0,HTTP 4.01不兼容。
期间直到2003,HTML没有版本的变化,但期间出现了DOM Level 1 & 2,提高了客户端的使用体验以及功能拓展。
2003,XForms(定位于下一代Web form)发布,其证明了很多它所拥有的新特性能拓展到HTML 4.01,Mozilla及Opera借此于2004年向W3C提出了更新HTML版本的提议,但W3C选择继续发展XML-based作为替代HTML。
于是Mozilla, Opera联合Apple组成新实体WHATWG,发展HTML 的Living document,对HTML继续进行拓展及新特性添加,直到后期W3C才转回HTML标准的制定,多谢WHATWG,才有了我们今天基本采用的HTML 5。
W3C与WHATWG于2008年一起发布了第一份草案,2014年正式发布HTML 5。
*MDN Web Docs 简介:Mozilla Developer Network的后续,致力于Web标准文档的发展以及Web开发资料分享,包括HTML5, JavaScript, CSS, Web APIs, Node.js以及网络扩展等
语法:
*HTML/XML/DOM等的语法上的一些区别:
namespaces不能用在HTML语法中,但可用作DOM及XHTML里;
可被用在HTML里,但不能用在DOM,XHTML里,-->仅仅能用在DOM里。
组成部分:
elements
My test pageThis is my page
:
历史遗留产物。
:
根元素,包含页面所有的内容
用于放置不被page viewers显示的内容。
包含
, links to CSS, links to favicons, 以及(作者,charset等等)Element: 组成及显示content的主体,共有6种不同的元素,分为如下
*Void elements*
, ,
,
, , , , , , , , .这些元素只有start tag, 没有end tag, 故也称为空元素,自闭合,也没有content。
*The elements*
, 用来声明在HTML里能被脚本复制或插入的片段,里也可以再包含,但其不是子template, 被存储在其他的非browsing context的document。
*Raw text elements*
,
*Escapable raw text elements*
, 可以有text
*Foreign elements*
MathML namespace:, , 与 SVG namespace: , 里的元素,如若是只有start tag, 自闭合,不能有content。
*Normal elements*
所有其他被HTML允许的元素,可以有text。
*Text: in the context of content models, means either nothing, or Text nodes. Text is sometimes used as a content model on its own, but is also phrasing content, and can be inter-element white space
Text nodes and attribute values must consist of Unicode characters
* end tag,
start tag, end tag, start tag, end tag等在满足一定条件情况下可以省略,更多可以省略的可以参考这里。*块级及内联元素
块级元素会以可见的块呈现在页面上,其显示会与其前后的content有一行的间距,常用于呈现结构化的elements,如paragraph, list, nav, footer等,块级元素不能被内嵌在内联元素之中,块通常只出现在
里。内联元素是包含在块里的,仅仅只包含一小部分内容,常呈现在段落里,如, , 等。其存在将不会导致新的一行的产生。
注意可以使用css display 属性,设置inline为block。
*HTML parsing model
parsing model
*, , , , 及MathTL, SVG里的元素为embeded元素
*元素是大小写不敏感的