一个基本的HTML
文档从结构上分可以分为两大部分:
HTML
文档声明部分HTML
标签部分
一. HTML
文档声明
大家知道HTML
有多个版本, 要想让浏览器能够正确的渲染你的HTML
文档, 则必须告诉浏览器你现在遵守的HTML
版本.
HTML
文档声明就是做的这样的工作.
1.1 浏览器模式
为了能够很好地显示满足标准的页面,又能最大程度兼容不合法的HTML。
浏览器厂商一般会提供两种浏览器模式:
标准模式
(standards mode)
:浏览器根据标准规约来渲染页面。混杂模式
(quirks mode)
:浏览器采用更加宽松的、向后兼容的方式来渲染页面。
混杂模式下,浏览器会模仿旧浏览器的行为,比如IE6,在此基础上兼容新的标准特性。
混杂模式又称兼容模式、怪异模式等。
1.2 DOCTYPE
切换
浏览器根据不同的DOCTYPE
选择不同的渲染方法就叫做DOCTYPE
切换。 其实DOCTYPE
切换就是用来识别和兼容旧网页的。
1.2.1 几种常见的文档声明
HTML 4.01 Strict
包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如
font
)。不允许框架集(Framesets
)。<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional
包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如
font
)。不允许框架集(Framesets
)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
XHTML 1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
注意:
XHTML
相比HTML
带来了更加严格的语法要求.这些文档声明都不需要记忆, 开发工具会有快捷键或者自动帮我们生成.
对这些声明只是了解即可.
1.2.2 浏览器渲染方式
以下情况浏览器会采用标准模式渲染:
- 给出了完整的DOCTYPE声明
- DOCTYPE声明了Strict DTD
- DOCTYPE声明了Transitional DTD和URI
以下情况浏览器会采用混杂模式渲染:
- DOCTYPE声明了Transitional DTD但未给出URI
- DOCTYPE声明不合法
- 未给出DOCTYPE声明
为了让浏览器工作在表中模式下, 所以我们应该总是给出完整的DOCTYPE声明
1.3 HTML5 DOCTYPE
声明
到目前为止, 大家能够看到上面的这些声明都是比较长, 所以在HTML5
中做了统一和精简.
HTML5
的doctype
非常简单。表明你的HTML
内容使用HTML5
,只需要简单的使用:
<!DOCTYPE html>
并且, 在未来即使 HTML
技术更新到了HTML 5, 6, 7...
, 此声明也保持不变.
而且, 此声明也可以向前兼容:
让目前还不支持的HTML5的浏览器采用标准模式解析,这意味着他们会解析那些HTML5中兼容的旧的HTML的标签的部分,而忽略他们不支持HTML5的新特性。
这个doctype比以前更短,更简单,使的它更容易被记住并且减少必须下载的字节数。
建议: 以后的文档声明统一使用 HTML5的文档声明.
二. HTML
标签部分
一个HTML
文档中最重要的就是标签部分, 一个文档中的所有的标签撑起了整个HTML骨架.
HTML
标签也叫HTML
元素.
2.1 HTML
标签基础知识
在html
中, 一个标签分 标签开始部分 <div>
和 标签结束部分</div>
. (有部分标签开始部分和结束在一起了)
开始标签到结束标签的所有代码构成一个完整的标签.
标签可以嵌套, 所以 HTML 文档才变的丰富和复杂.
而且大多数标签都可以嵌套
2.2 HTML
标签语法
- HTML 元素以开始标签起始
- HTML 元素以结束标签终止
- 元素的内容是开始标签与结束标签之间的内容
- 某些 HTML 元素具有空内容(empty content)
- 空元素在开始标签中进行关闭(以开始标签的结束而结束)
- 大多数 HTML 元素可拥有属性
注意:
html5出来之前, 标签名可以大写也可以小写, html5之后标签名都要小写.