面试题 前端(一)DOCTYPE作用 标准模式与混杂模式区分

一、DOCTYPE作用

Document Type(Declaration)的缩写,是一种标记语言的文档类型声明,必须在HTML文档的第一行,位于HTML标签之前。

作用是告诉浏览器使用哪个版本的HTML规范来渲染文档。

如果不存在或者不正确会导致文档以混杂模式呈现。

html 复制代码
<!DOCTYPE html>

二、标准模式与混杂模式区分

1. 概念

标准模式(Standard Mode):以浏览器支持的最高标准运行。

混杂模式(Quirks Mode):以一种比较宽松的向后兼容的方式显示。

2. 判断

javascript 复制代码
if (document.compatMode === "CSS1Compat") {
  console.log("标准模式");    
} else {
  console.log("混杂模式");   //混杂模式为BackCompat
}

3. 区分

1. 盒模型

标准模式按标准盒模型解析(宽度 = content)

混杂模式按IE盒模型解析(宽度 = content + padding + border)

2. 字体继承

标准模式严格遵循CSS继承规则,子元素会继承父元素的字体样式,除非被明确覆盖。

混杂模式可能会忽略或不完全继承父元素的字体样式。

3. 行内元素

标准模型下内联元素(inline)默认不接受 width 和 height 设置,若想控制内联元素大小,可将其display属性设为 inline-block 或 block 。

混杂模式下给 inline 元素设置宽高有效。

4. 溢出(overflow)

标准模式溢出时内容不会让元素大小自动增大,可能会被裁切。

混杂模式下元素的内容超出尺寸,元素大小自动调整以适应内容。

三、HTML5为什么只需要写<!DOCTYPE html>

HTML5 不基于 SGML(Standard Generalized Markup Language,标准通用标记语言),不需要引用 DTD(Document Type Definition,文档类型定义)文件。

基于 SGML 的需要通过 DOCTYPE 引用一个 DTD 文件来定义规则:

html 复制代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

告诉浏览器使用 HTML 4.01 Transitional 这个DTD,以及这个文件在哪里(后面的url)。

HTML5 只需要告诉浏览器"以标准模式渲染"。

四、SGML、HTML、XML和XHTML区别

SGML :标准通用标记语言,是定义其他标记语言的元语言,用于各种文档标记,可自定义标签和结构,与HTML、XML不兼容。

HTML :超文本标记语言,用于网页设计,标签固定,与XML不兼容。

XML :可扩展标记语言,用于数据存储与传输,例如配置文件,可自定义标签,与HTML不兼容。

XHTML :用于网页设计 ,标签严格,必须小写,标签必须闭合,属性必须小写,属性必须加引号等。

总结:SGML更复杂且灵活,HTML和XHTML专注于网页结构化,XML专注数据交换。

补充:XHTML是HTML用XML语法重写的版本,目标是让 HTML 更严谨、更可扩展,现在基本不用。

相关推荐
Nymph_Zhu1 分钟前
vue3+element-plus 文件上传
前端·typescript·vue3·element-plus
echome8887 分钟前
CSS 布局:Flex 和 Grid 怎么选,附常见坑
前端·css·html
计算机魔术师14 分钟前
科技巨头砸7400亿押注AI,为什么苹果成了唯一赢家?
前端
QianhangQianping23 分钟前
撤销重做不是「存快照」:一个可视化编辑器的Operation 设计
java·前端·数据库·typescript·编辑器·前端架构·撤销重做
Nymph_Zhu1 小时前
pdf转换markdown预览及内容互相点击定位
前端·pdf·vue3·markdown·element-plus
计算机魔术师1 小时前
Google 一天蒸发5000亿,Reddit 靠 AI 训练喂得饱自己却饿死
前端
小大宇1 小时前
Vue知识点-ElementPlus-05 输入框
前端·javascript·vue.js
l1m0_2 小时前
AI设计工具有哪些?Paico、Pixso AI、墨刀AI、Lovable、Codex怎么选
前端·人工智能·ai·设计·墨刀·codex·pixso
web打印社区2 小时前
Lodop在Edge和双核浏览器-先分清内核
前端·javascript·edge·pdf·ecmascript·html5
西瓜拿铁好喝2 小时前
开源和闭源 AI 办公工具,分别适合谁
java·前端·数据库