1、什么是DTD文档声明?
- 由于HTML有很多个版本的规范, 每个版本的规范之间又有一定的差异. 所以为了让浏览器能够正确的编译/解析/渲染我们的网页, 我们需要在HTML文件的第一行告诉浏览器, 我们当前这个网页是用哪一个版本的HTML规范来编写的. 浏览器只要知道了我们是用哪一个版本的规范来编写之后, 它就能够正确的编译/解析/渲染我们的网页。
2、DTD文档声明格式:
<!DOCTYPE html>
- 注意事项:
<!DOCTYPE>声明必须是 HTML 文档的第一行,位于 <html> 标签之前
<!DOCTYPE> 声明不是 HTML 标签
<!DOCTYPE> 声明没有结束标签
<!DOCTYPE> 声明对大小写不敏感
这个声明浏览器会看, 但是并不是完全依赖于这个声明, 浏览器有一套自己的默认的处理机制
不写也能运行
H5网页里面用H4也能运行
3、HTML5之前有2大种规范, 每种规范中又有3小种规范
- 大规范 小规范
- HTML Strict (严格的)
- HTML Transitional(过度的,普通的,宽松的)
- HTML Frameset(带有框架的页面)
- XHTML Strict (严格的)
- XHTML Transitional(过度的,普通的,宽松的)
- XHTML Frameset(带有框架的页面)
4、HTML的DTD文档声明和XHTML的DTD文档声明有何区别?
- XHTML本身规定比如标签必须小写、必须严格闭合、必须使用引号引起属性等等, 而HTML会更加松散没有这么严格。
5、Strict
- Strict表示严格的, 这种模式里面的要求更为严格.这种严格主要体现在有一些标签不能使用
- 例如font标签/u标签等
- font标签可以修改一个文本的字号、颜色、字体,但这和HTML的本质有冲突,因为HTML只能负责语义,不能负责样式,而font标签是用于修改样式的,所以在Strict中是不能使用font标签
- u标签可以给一个文本加上下划线,但这和HTML的本质有冲突,因为HTML只能负责语义,不能负责样式,而u标签是用于添加下划线是样式.所以在Strict中是不能使用u标签
6、Transitional
- Transitional表示普通的, 这种模式是没有一些别的要求
- 例如可以使用font标签、u标签等
- 但是在企业开发中不会使用这些标签,因为这违背了HTML的本质, 而是将这些标签作为css的钩子使用
7、Frameset表示框架, 在框架的页面使用
- 后面学到框架/NodeJS 再做详细了解
8、常见的DOCTYPE有如下几种
-XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-HTML5:
<!DOCTYPE html>
-有这么多规范我们学习过程中到底使用哪一种比较合适呢?
无论是HTML还是XHTML,过去企业级开发中用的比较多的大 部分都是Transitional类型的文档声明
但是HTML5的时代已经到来,以上6中规范仅仅作为了解, 以后都用HTML5类型的文档声明, HTML5向下兼容(求此刻WC3心里阴影面积)
目前国内一线网站都更新到了HTML5的文档声明, 所以后续授课也是全程使用HTML5的文档声明