欢迎访问我的博客https://qqqww.com/,祝所有码农同胞们早日走上人生巅峰,迎娶白富美~~
1 DOCTYPE的作用
-
<!doctype>
声明位于 HTML 文档第一行, 处于<html>
标签之前,用于告诉浏览器该以什么文档标准去解析这个文档 - 若
DOCTYPE
声明不存在或者不正确会导致文档以兼容模式呈现
2 标准模式 VS 兼容模式
- 标准模式(standards):又称严格模式,指浏览器按照 W3C 标准解析代码,排版和 JS 的运行都是以浏览器支持的最高标准运行
- 兼容模式(quirks):又称怪异模式或者混杂模式,指浏览器以自己的方式解析代码
- 区分:浏览器解析时到底使用严格模式还是混杂模式,与网页中的 DTD 直接相关
- 标准模式呈现:**有 URL 的过渡 DTD **
- 混杂模式呈现:
- 没有 URL 的过渡 DTD
- 没有DTD或者格式不正确
-
HTML5
中不是基于SGML
的,没有DTD
,没有标准和兼容模式之分,所以只需要写<!doctype html>
具体到两种模式解析上的不同点:
- 盒模型的高宽包含内边距
padding
和边框border
, 在W3C
标准中,如果设置一个元素的宽度和高度,指的是元素内容的宽度和高度,而在IE5.5
及以下的浏览器及其他版本的Quirks
模式下,IE的宽度和高度还包含了padding
和border
- 在
Standards
模式下,给span
等行内元素设置wdith
和height
都不会生效,而在quirks
模式下,则会生效 - 在
standards
模式下,一个元素的高度是由其包含的内容来决定的,如果父元素没有设置高度,子元素设置一个百分比的高度是无效的 - 使用
margin:0 auto
在standards
模式下可以使元素水平居中,但在quirks
模式下却会失效,quirks
模式下的解决办法,用text-align
属性:body{text-align:center};#content{text-align:left}
-
quirks
模式下设置图片的padding会失效 -
quirks
模式下Table
中的字体属性不能继承上层的设置 -
quirks
模式下white-space:pre
会失效
3 DOCTYPE 的文档类型
我们去编译器里快速生成这些各种类型的声明来看看:
1. HTML5(一种):
<!DOCTYPE html>
2. HTML 4.01(三种):
严格模式包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font),不允许框架集(Framesets);过渡模式包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font),不允许框架集(Framesets);框架模式等同于过渡模式,但允许框架集内容
HTML 4.01 Strict :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
3、XHTML 1.0(四种):
前三种模式同上,XHML 必须以格式正确的 XML 来编写标记
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 1.0 Frameset:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1 该 DTD 等同于 XHTML 1.0 Strict,但允许添加模型
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
4 XHTML、HTML VS HTML5
- 文档声明不同,具体见上面一节DOCTYPE 的文档类型
- HTML 没有提供结构语义化的标签,而HTML5提供了很多新的语义化的标签
-
XHML VS HTML:
- 相比较 HTML 而言,XHTML 更加严格
- XHTML 所有的标记都必须要有一个相应的结束标记
- XHTML 所有标签的元素和属性的名字都必须使用小写
- 所有的 XML 标记都必须合理嵌套
- XHTML 所有的属性必须用引号括起来
- XHTML 文档图片必须有说明文字
5 名词解释
以上有一些名词,可能平时会少注意一些,但是以后肯定是有用的,我去百度查了下,大概总结如下,同时也贴了相关链接在本文中,遇到问题方便查找
5.1 DTD
文档类型定义(Document Type Definition)是一套为了进行程序间的数据交换而建立的关于标记符的语法规则
5.2 SGML
SGML(Standard Generalized Markup Language,即标准通用标记语言)
详细见智库百科
主要特点:
- 它可以支持众多的文档结构类型,例如布告、技术手册、章节目录、设计规范、各种信函等
- 它可以创建与特定的软硬件无关的文档,因此很容易与使用不同计算机系统的用户交换文档
主要构成:
- SGML声明(SGML Declaration)
- 文档类型定义(Document Type Definition,DTD)
- 文档实例(Document Instance)
5.3 RSS
简易信息聚合(也叫聚合内容)是一种RSS基于XML标准,在互联网上被广泛采用的内容包装和投递协议
RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,是使用最广泛的XML应用
详细见RSS简易信息聚合
网友评论