DOCTYPE彻底掌握
一、DOCTYPE
1、什么是DOCTYPE?
DOCTYPE是Document Type(文档类型)的简写,它是一种标准通用标记语言的文档类型声明。目的是要告诉标准通用标记语言解析器,它应该使用什么样的文档类型定义(DTD)来正确解析文档。
2、定义与用法
<!DOCTYPE> 必须声明,否则效果或出现差异。
<!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前。
<!DOCTYPE> 声明不是 HTML 标签,它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。
<!DOCTYPE> 声明没有结束标签。
<!DOCTYPE> 声明对大小写不敏感。
在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。
3、官方定义-DOCTYPE语法
HTML 顶级元素 可用性 “注册//组织//类型 标签//定义 语言””URL”
4、官方定义-可能值
(1)顶级元素:指定 DTD 中声明的顶级元素类型。这与声明的 SGML 文档类型相对应。 HTML 默认。HTML。
可用性:指定正式公开标识符(FPI)是可公开访问的对象还是系统资源。 PUBLIC 默认。可公开访问的对象。SYSTEM 系统资源,如本地文件或 URL。
(2)注册:指定组织是否由国际标准化组织(ISO)注册。 + 默认。组织名称已注册。- 组织名称未注册。Internet 工程任务组(IETF)和万维网协会(W3C)并非注册的 ISO 组织。
(3)组织:指定表明负责由 !DOCTYPE 声明引用的 DTD 的创建和维护的团体或组织的名称,即 OwnderID。 IETF IETF。 W3C W3C
(4)类型:指定公开文本类,即所引用的对象类型。 DTD 默认。DTD。
(5)标签:指定公开文本描述,即对所引用的公开文本的唯一描述性名称。后面可附带版本号。 HTML 默认。HTML。
(6)定义:指定文档类型定义。
- Frameset 框架集文档
- Strict 排除所有 W3C 专家希望逐步淘汰的代表性属性和元素,因为样式表已经很完善了
- Transitional 包含除 frameSet 元素的全部内容
(7)语言:指定公开文本语言,即用于创建所引用对象的自然语言编码系统。该语言定义已编写为 ISO 639 语言代码(大写两个字母)。 EN 默认。英语。
(8)URL:指定所引用对象的位置
二、常用的 DOCTYPE 声明
1、HTML5(只有一种)
<!DOCTYPE html>
2、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">
3、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">
4、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">
5、XHTML 1.0 Strict (严格的)
该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
6、XHTML 1.0 Transitiona (过渡的)
该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
7、XHTML 1.0 Frameset (框架的)
该 DTD 等同于 XHTML 1.0 Transitional,但允许框架集内容
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
8、XHTML 1.1
该 DTD 等同于 XHTML 1.0 Strict,但允许添加模型(例如提供对东亚语系的 ruby 支持)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml1
特殊字符
一、HTML字符实体(Character Entities)
1、实体
在 HTML 中,某些字符是预留的。
在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。
如果希望正确地显示预留字符,我们必须在 HTML 源代码中使用字符实体(character entities)。
2、字符实体组成
字符实体由三部分组成:
第一部分:& 符号,英文叫ampersand
第二部分:实体(Entity)名字或 # 加上实体(Entity)编号
第三部分:; 分号
示例:小于符号—- < 或 <
注意:Entity区分大小写
二、不间断空格(non-breaking space)
1、Html中的不间断空格其实就是空格—-
2、HTML会自动截去多余的空格。不管你加多少空格,都被看做一个空格。比如你在两个字之间加了10个空格,HTML会截去9个空格,只保留一个。为了在网页中增加空格,你可以使用 表示空格。
3、常用实体特殊符号如下:
智一面|前端面试必备练习题