--外功篇-《HTML二三事》-01-HTML概述--
外传
小虾米最近在回顾html的知识,记录记录html的那二三事。 知识前置:
1. 标签是什么
2. 标签的主体结构
3. 文档声明
正传
HTML是个什么东西?
HTML,超文本标记语言。 (HyperText Markup Language)
有过C的基础的小伙伴们可能对超文本标记没什么感觉,语言就是语言,超文本标记语言是个啥?
所谓文本标记,即是对文本进行操作,既然是语言,自然就是需要编译器进行运行之后才能使用。
所以,HTML是运行在浏览器中,编译之后形成网页文本的一种语言。
至于HTML的“标记”,则在于HTML内容的构成。
HTML的文本内容,都是由一个个标签剥离包裹而成。
一个个标签构成了网页文本内容的标记。(至于为什么标记,参见JS对DOM操作的部分内容)
标签是什么?
标签对于HTML的作用尤为重要。
在我们的word编辑软件中,当我们需要对文字内容进行编辑,字体加粗、更改字体、设置标题、引入链接、放置图片等操作时,只需要动动鼠标进行设置就行。
但对于浏览器来说,要对HTML文本内容进行以上操作,就不能是动鼠标操作了。浏览器就需要借用HTML中的标签对文本的放置进行操作。
例如:
<h1>Hello World!</h1>
h1标签的作用,就是放置一个一级标题的文本。
HTML的主体结构
HTML的文本结构由以下的形式进行构成:
<html>
<head></head>
<body></body>
</html>
<html></html>
标签用于包裹全部的文本文档内容,<head></head>
用于包裹文档内容的头部标签信息,<body></body>
用于包裹HTML文本主要显示内容。
有关<head></head>
标签具体内容参见:(日后更)
HTML中的文档声明
由于HTML一路发展更新,至博客记录时为止,已经发展到HTML5。不禁回想起当初第一次接触到HTML时的一些语句,与现在大有不同。
HTML5的文档声明为,该声明,必须书写在html的最前面,用来告知文档需要以何种方式进行解析。
部分其他声明方式
常用的DOCTYPE声明
HTML5
HTML 4.0 Strict
该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional
该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset
该 DTD 等同于 HTML 4.01 Transitional,但允许框架集内容。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
所谓框架集,则是html中的frameset和frame标签
在HTML 4.01 中,<!DOCTYPE> 声明需引用 DTD (文档类型声明),因为 HTML 4.01 是基于 SGML(Standard Generalized Markup Language 标准通用标记语言)。
由上可知Doctype可声明三种DTD类型,分别表示严格版本、过渡版本以及基于框架的 HTML 文档。
当浏览器厂商开始创建与标准兼容的浏览器时,他们希望确保向后兼容性。为了实现这一点,他们创建了两种呈现模式:标准模式和混杂模式
- 在标准模式中,浏览器以其支持的最高标准呈现页面
- 在混杂模式中,页面以一种比较宽松的向后兼容的方式显示。混杂模式通常模拟老式浏览器的行为以防止老站点无法工作。
模式触发
浏览器根据DOCTYPE是否存在以及使用的哪种DTD来选择要使用的呈现方法。
如果XHTML、HTML 4.01文档包含形式完整的DOCTYPE,那么它一般以标准模式呈现。
包含过渡DTD和URI的DOCTYPE也导致页面以标准模式呈现,但是有过渡DTD而没有URI会导致页面以混杂模式呈现。
DOCTYPE不存在或形式不正确会导致HTML和XHTML文档以混杂模式呈现。
html5既然没有DTD,也就没有严格模式与宽松模式的区别,html5有相对宽松的语法,实现时,已经尽可能大的实现了向后兼容。