首先,说一下DOCTYPE:
DOCTYPE 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。
常用的 DOCTYPE 声明
HTML 5
< !DOCTYPE html>
HTML 4.01 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)。
** “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规则:
- < html>元素是比不可少的(这就是废话…);
- 只有< head>< body>可以直接包含于< html>元素,而其它任何元素都必须包含于< head>或< body>元素;
- 我们总是给< head>元素一个< title>元素,< head>元素是放置< title>元素,< meta>元素和< style>元素的唯一位置;
- 只可以使用有用的块元素填充< body>,所有的内联元素和文本都必须在块元素中才能运行;
- 只有文本和其它内联元素可以嵌入内联元素中,块元素在任何情况下都不允许包含在内联元素中;
下面是对于细节的一些规则:
- 块元素禁止包含在< p >元素之中;
- 列表只能包括列表项目,即< ul>,< ol>中只能放< li >元素,而< li>元素中可以放文本,块元素或内联元素;
- < blockqoute>中只可放块元素;
- 内联元素可随意嵌入另一个内联元素,但以下两种情况例外,< a >不可自我嵌套,空元素不可嵌套其它元素。
以上规则来自Head First HTML CSS一书中,摘抄记录下来供大家分享!
下面对以上一些名词作些解释:
- 元素:就是< html>的标签
- 块元素:元素前后都会换行,标签成对出现(绝大部分),< a>< /a>就不是
- 内联元素:元素前后不会换行
- 空元素:如< br>,< img>