haizlin / fe-interview

前端面试每日 3+1,以面试题来驱动学习,提倡每日学习与思考,每天进步一点!每天早上5点纯手工发布面试题(死磕自己,愉悦大家),6000+道前端面试题全面覆盖,HTML/CSS/JavaScript/Vue/React/Nodejs/TypeScript/ECMAScritpt/Webpack/Jquery/小程序/软技能……
http://www.h-camel.com
MIT License
25.34k stars 3.25k forks source link

[html] 第14天 为什么HTML5只需要写<!DOCTYPE HTML>就可以? #42

Open haizhilin2013 opened 5 years ago

haizhilin2013 commented 5 years ago

第14天 为什么HTML5只需要写<!DOCTYPE HTML>就可以?

hbl045 commented 5 years ago

这个HTML5新标,H4之前还是要写很长一串的文本申明,还分有传统模式,严格模式

tsl1127 commented 5 years ago

DOCTYPE是document type的缩写,是HTML中用来区分标准模式和怪异模式的声明,用来告知浏览器用标准模式渲染页面,在页面开始写<!DOCTYPE html>即可 怪异模式兼容老页面

Konata9 commented 5 years ago

因为 HTML5 与 HTML4 基于的基准不同。HTML4 基于 SGML 因此需要除了 DOCTYPE 外还需要引入 DTD 来告诉浏览器用什么标准进行渲染。DTD 还分为标准模式、严格模式。如果什么都不写,就完全让浏览器自我发挥,会变成怪异模式。

HTML5 不基于 SGML,因此后面就不要跟 DTD,但是需要 DOCTYPE 来规范浏览器的渲染行为。

注:SGML 是通用标记语言的集合。其中有 HTML、XML,因此需要用 DTD 来指定使用那种规范。

0x3c commented 4 years ago

HTML5 之前基于 SGML, SGML 需要指定 DTD 解析文档, 可通过<!DOCTYPE>指定要使用的 DTD, 若不写则会进入怪异模式; HTML5 不基于 SGML, 不需要指明 DTD, 其<!DOCTYPE>只有一种: <!DOCTYPE html>.

giggleCYT commented 4 years ago

因为HTML5不再基于SGML,不需要对DTD进行引用,但是需要 DOCTYPE 来规范浏览器的行为

smile-2008 commented 4 years ago

HTML5 之前基于 SGML, SGML 需要指定 DTD 解析文档, 可通过<!DOCTYPE>指定要使用的 DTD, 若不写则会进入怪异模式; HTML5 不基于 SGML, 不需要指明 DTD, 其<!DOCTYPE>只有一种: <!DOCTYPE html>.

xiezhenghua123 commented 3 years ago

规定标准模式 不写的话就按照混杂模式执行代码(兼容旧版浏览器)

amikly commented 2 years ago

DOCTYPE

因为HTML5不再基于SGML,所以不需要引用DTD,只需要一个根元素(HTML)即可

yxllovewq commented 2 years ago

总结: DOCTYPE:不是html标签,必须放置于html文件首行,告诉浏览器以何种方式解析html文件。默认以怪异模式渲染。 html5以前,DOCTYPE基于SGML,需要显式申明DTD,html5后,不再基于SGML,不需要显式声明DTD。

WangXi01 commented 2 years ago

doctype是document type的意思,html5之前,基于sgml,除了doctype外还需要告诉浏览器是标准模式还是怪异模式,但是html5就不需要这个了,所以只需要引入<!DOCTYPE HTML>

Iambecauseyouare commented 1 year ago

因为HTML5不基于SGML,HTML4.01中的doctype需要对DTD进行引用,因为HTML4.01基于SGML,因此HTML5不需要对DTD进行引用,但是需要doctype来规范浏览器的行为

KrisLeong-LBY commented 8 months ago

HTML5不基于SGML, 因此不需要对DTD进行引用,但是需要doctype 来规范浏览器的行为(让浏览器按照它们应该的方式来运行) ;而HTML4.01 基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。

lili-0923 commented 8 months ago

因为 HTML5 与 HTML4 基于的基准不同。

HTML4 基于 SGML 因此需要除了 DOCTYPE 外还需要引入 DTD 来告诉浏览器用什么标准进行渲染。DTD 还分为标准模式、严格模式。如果什么都不写,就完全让浏览器自我发挥,会变成怪异模式。

HTML5 不基于 SGML,因此后面就不要跟 DTD,但是需要 DOCTYPE 来规范浏览器的渲染行为。 注:SGML 是通用标记语言的集合。其中有 HTML、XML,因此需要用 DTD 来指定使用那种规范。

pengsir120 commented 2 weeks ago

<!DOCTYPE HTML>是HTML5文档类型的声明,位于HTML文档的最顶部。它告诉浏览器当前文档遵循的是HTML5版本的标准。 它有助于浏览器确定使用何种模式来处理HTML文档。在HTML5中,<!DOCTYPE HTML>是最简化且推荐的声明方式,不区分大小写。