HTML 简介

前言:

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里;
<noscript>可被用在HTML里,但不能用在DOM,XHTML里,
-->仅仅能用在DOM里。

组成部分:

elements
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>My test page</title>
  </head>
  <body>
    <p>This is my page</p>
  </body>
</html>
  1. <!DOCTYPE html>:
    历史遗留产物。
  2. <html> </html>:
    根元素,包含页面所有的内容
  3. <head> </head>:
    用于放置不被page viewers显示的内容。
    包含<title>, links to CSS, links to favicons, 以及<metadata>(作者,charset等等)
  4. Element: 组成及显示content的主体,共有6种不同的元素,分为如下
*Void elements*
<area>, <base>, <br>, <col>, <embed>, <hr>, <img>, <input>, <link>, <meta>, <param>, <source>, <track>, <wbr>.这些元素只有start tag, 没有end tag, 故也称为空元素,自闭合,也没有content。

*The <template> elements*
<template>, 用来声明在HTML里能被脚本复制或插入的片段,<template>里也可以再包含<template>,但其不是子template, 被存储在其他的非browsing context的document。

*Raw text elements*
<script>, <style> 可以有text

*Escapable raw text elements*
<textarea>, <title>可以有text

*Foreign elements*
 MathML namespace:<math>, <object>, <picture> 与 SVG namespace: <svg>, <video> 里的元素,如若是只有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

*<html> end tag, <head> start tag, end tag, <body> start tag, end tag等在满足一定条件情况下可以省略,更多可以省略的可以参考这里

*块级及内联元素
块级元素会以可见的块呈现在页面上,其显示会与其前后的content有一行的间距,常用于呈现结构化的elements,如paragraph, list, nav, footer等,块级元素不能被内嵌在内联元素之中,块通常只出现在<body>里。

内联元素是包含在块里的,仅仅只包含一小部分内容,常呈现在段落里,如<a>, <em>, <strong>等。其存在将不会导致新的一行的产生。
注意可以使用css display 属性,设置inline为block。
*HTML parsing model


parsing model

*<audio>, <canvas>, <embed>, <iframe>, 及MathTL, SVG里的元素为embeded元素

*元素是大小写不敏感的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。