首页 > 其他分享 >HTML:文档声明<!DOCTYPE>、严格模式、怪异模式

HTML:文档声明<!DOCTYPE>、严格模式、怪异模式

时间:2023-01-16 13:33:08浏览次数:60  
标签:浏览器 模式 DTD HTML 文档 怪异

1、什么是<!DOCTYPE>

<!DOCTYPE html>

<!DOCTYPE>是一个文档声明,它不是HTML标签,而是一条信息,告知浏览器期望的文档类型,帮助浏览器确定其尝试解析和显示的HTML文档类型。必须在HTML文档的第一行、且顶格显示,对大小写不敏感。任何放在DOCTYPE前面的东西,比如批注或者XML声明都会使IE9或更早期的浏览器触发怪异模式。

HTML经历了很多版本,不同版本支持的HTML标签不同 ,文档声明也不相同,如:

<!DOCTYPE html> 是HTML5的的文档声明
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 是HTML4的文档声明

HTML5不需要引入DTD文件,而其他版本的则需要引入DTD。早期版本中之所以要引用DTD是因为其基于SGML,而DTD规定的是标记语言的规则,这样浏览器才能正确呈现内容,但最新的HTML5不基于SGML,所以不需要引用DTD。SGML与HTML是一家,只是它是很早的版本

现在通常说的H5开发实际上是HTML5+CSS3+ES6

2、渲染模式

浏览器渲染模式分为3种:

  • 怪异模式(混杂模式 Quirks)
  • 严格模式(标准模式 Standards)
  • 几乎标准模式

 之所以出现不同的渲染模式,主要是由历史原因造成的。在w3c标准出来之前,浏览器对页面的渲染没有统一的规范,不同公司的浏览器的规范不同,所以程序员开发网页要做很多兼容。w3c出来后,为了保证浏览器页面的兼容性,浏览器都保留了旧的渲染方法,于是就出现了混杂模式和标准模式,两种渲染方法共存于一个浏览器中,混杂模式服务于旧的规则,标准模式服务于w3c标准规则

严格模式和怪异模式的区别(以下说的是怪异模式里的行为,标准模式是不允许的):

  1. 盒模型的宽高包含内边距padding和边框border
    在w3c标准中,如果设置一个元素的宽高,指的是元素内容的宽高,不包含padding和border
  2. 可以设置行内元素的高度
    而在标准模式下给 span等行内元素设置width和height都不会生效,而在怪异模式下会生效
  3. 可以设置百分比的高度
    而在标准模式下,如果父元素没有设置高度,子元素设置一个百分比的高度是无效的。
  4. 用margin: 0 auto 设置水平居中在IE下会失效
    在标准模式下,使用margin: 0 会使元素水平居中
  5. 怪异模式下设置图片的padding会失效
  6. 怪异模式下table的字体属性不能继承上层的设置
  7. 怪异模式下white-space:pre 会失效

如何区分?

浏览器解析时用严格模式还是怪异模式,与网页中的DTD有关,而HTML5没有DTD,因此也就没有严格模式和怪异模式的区别,HTML5有相对宽松的语法,已经尽可能的实现了向后兼容。

标签:浏览器,模式,DTD,HTML,文档,怪异
From: https://www.cnblogs.com/Luffy-RedRoc/p/17055148.html

相关文章

  • tracer ftrace笔记(12)—— trace文档翻译与实验——README
    基于Linux-5.10.110一、翻译/sys/kernel/tracing#catREADMEtracingmini-HOWTO:#echo0>tracing_on//禁用trace的快速方法#echo1>tracing_on//重新启用tr......
  • 互联网医院系统开发功能强大,布局智慧医疗源码新模式
    互联网医院系统强大的功能基本上覆盖了患者诊前诊中诊后的所有环节,诊前主要提供导分诊能力,利用预约挂号功能,让患者不去医院即可挑选医生,完成预约挂号,在诊中环节,互联网医院更......
  • 请关闭你的等死模式
    我在飞机上遇到一位女士,她去年本想考自己喜欢的研究生,结果失败,却出乎意料地遇到了一份不错的工作。今年是考还是不考?她害怕考了又考不上,浪费时间,但是不考又不安心,已经纠结......
  • 「HTML+CSS」自定义加载动画【049】
    前言Hello!小伙伴!首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~哈哈自我介绍一下昵称:海轰标签:程序猿一只|C++选手|学生简介:因C语言结识编程,随后转入计算......
  • 「HTML+CSS」--自定义加载动画【044】
    前言Hello!小伙伴!首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~哈哈自我介绍一下昵称:海轰标签:程序猿一只|C++选手|学生简介:因C语言结识编程,随后转入计算......
  • 「HTML+CSS」--自定义加载动画【045】
    前言Hello!小伙伴!首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~哈哈自我介绍一下昵称:海轰标签:程序猿一只|C++选手|学生简介:因C语言结识编程,随后转入计算......
  • 「HTML+CSS」--自定义加载动画【043】
    前言Hello!小伙伴!首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~哈哈自我介绍一下昵称:海轰标签:程序猿一只|C++选手|学生简介:因C语言结识编程,随后转入计算......
  • 小白必看!用JMeter+ANT进行接口自动化测试,并生成HTML测试报告
    每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:magetest码同学抖音号:小码哥聊软件测试 小伙......
  • 在尝试加载程序集 ID 65536 时 Microsoft .NET Framework 出错。服务器可能资源不足,或
    SqlServer 函数中执行的程序集但用户的权限不够,后DBA使用sa 账号设置了就对了网上找到的解决方法:这数据库是从其他数据库还原到本地数据库的,不少网友说在还原数据库之......
  • HTML5学习笔记
    HTML5学习笔记  概念网页是构成网站的基本元素;网站是相关网页的集合;网页是构成网站的基本元素,他是由图片链接、文字、声音视频等元素组成;通常看到的网页以HT......