我想,<!DOCTYPE>应该是HTML初学者接触的第一个标签吧,让我们回忆一遍其定义:声明HTML版本。

我们知道,HTML经过不断更新,现在正是HTML5如火如荼的时代。在以往的HTML版本(如HTML4.01),由于基于SGML而需要引用DTD,这导致了其声明非常复杂,这是HTML4.01的声明:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

如此冗长的声明对于新手来说十分不友好,记住它可不是轻而易举的事情。

现在,HTML5不再基于SGML,也就不需要引用DTD,所以它的声明非常简洁:

<!DOCTYPE html>

声明后,浏览器就知道了我们编写的HTML文档的版本。

如果你以为这就是<!DOCTYPE>的全部作用,那就大错特错了。

你可曾听闻“怪异模式”这个词?(
“怪异模式”听起来本身就很怪异吧……)

实际上,<!DOCTYPE>还有一个作用:避免浏览器进入怪异模式。

什么是怪异模式?在很久很久以前,那是一个浏览器刚刚兴起的时代,市面上以两种浏览器为主流:网景的Netscape Navigator浏览器和微软的IE浏览器,两者在解析网页都各有自己的一套标准,导致了同一网页在不同浏览器上显示出不同的效果。后来陆续出现了更多的浏览器,它们都有一套专属标准。像这样,每种浏览器都有不同的解析网页的标准,这就是怪异模式。

后来,为了停止这种混乱的现象,W3C发布了一套规范——标准模式诞生了。

随着网络技术的飞速发展,我们不得不考虑老网站的何去何从。某些老网站在标准模式下无法正常显示,为了更好地兼容它们,怪异模式被保留了下来。

可以说,怪异模式是历史遗留问题。

现在我们知道了浏览器解析HTML、CSS的模式有:标准模式、怪异模式,以及怪异模式到标准模式的过渡——接近标准模式。

  • 标准模式下,浏览器按W3C标准执行代码。
  • 怪异模式下,浏览器按自身标准执行代码。
  • 接近标准模式下,少数怪异行为仍会实现。

既然<!DOCTYPE>可以避免怪异模式,那么具体该如何实施呢?

答案是:正确声明<!DOCTYPE>,且<!DOCTYPE>位于文档首行(<!DOCTYPE>之前不可以有代码)。

正确示范

<!DOCTYPE html>
<html>
<head>
...

错误示范

<!--注释-->
<!DOCTYPE html>
<html>
<head>
...

不声明或声明不位于文档首行都会导致浏览器进入怪异模式。

最后,让我们了解一下怪异模式与标准模式的一些差异吧。

  • 盒模型差异:标准模式与怪异模式的盒模型不同。
  • 行内元素差异:标准模式下,行内元素设置width与height无效;怪异模式下,行内元素设置width与height有效。
  • 水平居中差异:标准模式下,块级元素水平居中设置margin:auto有效,设置text-align:center无效;怪异模式下,块级元素水平居中设置text-align:center有效。

怪异模式与标准模式还有许多细微的差异,此处就不再赘述。

关于<!DOCTYPE>与怪异模式的故事就此结束了,我们下次再见。

DOCTYPE与怪异模式相关推荐

  1. html标签--!DOCTYPE (怪异模式和DTD)

    DTD:Document Type Definition 为了保证向后兼容,浏览器厂商发明了标准模式和怪异模式这两种方法来解析网页. 如果不显示声明FF会按照标准模式来解析网页,而IE6-8就会触发怪 ...

  2. 此页面处于怪异模式,排版布局可能会受到影响。若需要标准模式,请使用“!DOCTYPE html”。

    一.报错 二.原因 一.报错 此页面处于怪异模式,排版布局可能会受到影响.若需要标准模式,请使用"!DOCTYPE html".详细了解 导致:页面打开是空的,什么内容也没有~ 二 ...

  3. Doctype作用? 严格模式与混杂模式如何区分?它们有何意义

    前端面试题(3) 打卡: 2021-4-27 HTML Doctype 作用? 严格模式与混杂模式如何区分?它们有何 意义? Doctype作用 (1)位于文档最前面,处于标签之前.告诉浏览器用什么文 ...

  4. IE6/7和IE8/9(怪异模式)浮动元素折行Bug

    网页设计中,我们经常需要设置一个元素向左或向右浮动.如 <!DOCTYPE HTML> <html> <head><title>IE6/7和IE8/9( ...

  5. “约见”面试官系列之常见面试题之第五十二篇之标准模式和怪异模式(建议收藏)

    在标准模式页面按照HTML,CSS的定义渲染,而在怪异模式就是浏览器为了兼容很早之前针对旧版本浏览器设计,并未严格遵循W3C标准而产生的一种页面渲染模式.浏览器基于页面中文件类型描述的存在以决定采用哪 ...

  6. 浏览器标准模式和怪异模式

    什么是标准模式和怪异模式? 在实现html和css标准化之前,各个浏览器对html和css的解析各有不同,甚至是同一个浏览器的不同版本渲染方式也不同(比如IE6和IE7).在W3C制定标准之后,浏览器 ...

  7. 标准模式和怪异模式指的是什么?

    标准模式(也称为"严格模式")是浏览器按照HTML和CSS规范的标准方式解析和呈现网页的模式.在标准模式下,浏览器会更严格地遵守标准,确保网页在不同浏览器中的显示效果更为一致. 怪 ...

  8. HTML的标准模式与怪异模式

    HTML的标准模式与怪异模式 HTML 的结构 在HTML4中 DOCTYPE有三种模式 标准模式与怪异模式 HTML 的结构 <html><head><meta cha ...

  9. 严格模式、混杂模式与怪异模式

    Doctype作用?严格模式.混杂模式和怪异模式如何区分?它们有何意义? 1.doctype的作用: 声明位于文档 的最前面,告知浏览器的解析器,用什么文档类型.规范来解析这个文档. 注意: 1).规 ...

最新文章

  1. Contos7 克隆实例 以及 配置网络-服务-等相关信息
  2. eslint vscode 自动格式化_配置VSCode编辑器适配VUE3开发
  3. Flutter开发之SnackBar提示组件-4(43)
  4. 二级联动菜单(javascript)
  5. linux mono apache2,使用Apache2设置ModMono
  6. python递归函数查询表_python---------------递归函数
  7. cesium广告牌_公路广告牌
  8. android 百度转码,移动端禁止百度自动转码的方法
  9. 2021年中国专业话筒市场趋势报告、技术动态创新及2027年市场预测
  10. UCDOS SDK FOR C/C++ 1.0 说明文件
  11. 后缀树总结-java版
  12. Scapy:查看sniff函数抓取的包
  13. vmware搭建多台虚拟机-桥接模式
  14. C++桌面图标游戏系列之二【俄罗斯方块】
  15. mapbox-gl开发:集成deck.gl
  16. 华大单片机-替代STM8S003F3的国产华大HC32F003资源对比-芯虎论坛
  17. 解决安装 fireworks、photoshop 时卡在输入账号、手机号处等问题
  18. 震旦AD系列打印机进维修模式及常规故障处理
  19. 山东理工大学计算机考研复试分数线,山东理工大学2021考研复试分数线
  20. CDR X6打了3折,再送魔镜插件,是真的么?

热门文章

  1. 解决Themida加壳程序在VMware虚拟机无法运行问题_HS_TMD
  2. Windows上本地安装MySQL数据库
  3. 关于wince4.2 2k 页面 nand flash 驱动的问题
  4. k8s部署jenkins和Pod始终为pending状态“persistentvolume-controller no persistent volumes available.....”解决办法
  5. 错误集:smbclient访问Windows共享文件夹报错误:protocol negotiation failed: NT_STATUS_CONNECTION_RESET
  6. 好程序员云计算培训分享云计算中IDS是什么?
  7. 程序设计思维 B - 东东学打牌
  8. ARM Core WFI/WFE
  9. 济南大学计算机专业就业前景好,计算机进入“十大热门专业”,未来缺口大,这3所大学值得报考...
  10. L1-054 福到了-java