HTML中<!DOCTYPE html>之前什么也不能写,但是写了浏览器也不报错这是为啥?

在书上看到<!DOCTYPE html>之前不能写任何东西,包括注释;于是我就去试了一下,发现就算在<!DOCTYPE html>之前写了东西,编辑器和浏览器都不会报错,也都能正常运行,这是为啥?

想问一下知道的大佬们,它这个规则出现的意义是干啥的。。。

静态页面是不会报错的,错了就错的显示,对了就对的显示,但跟后台及其他框架配合就会出问题了。

<!DOCTYPE html>声明不是一个 HTML 标签;它是用来告知 Web 浏览器页面使用了哪种 HTML 版本。

加了<!doctype html>就是按照html5的规则来解析页面。

比如加了<!doctype html>后 <body>中的<div class="box"></div>设置height: 100%; 无效。

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8" />
	<title> 页面名称 </title>
<style type="text/css">
.box {
	background-color: #f00;
	height: 100%;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>

删除<!doctype html>,或者在<!doctype html>之前写了东西(写注释不影响),height: 100%; 就变为有效

可能是你书本上印刷错误,注释是对程序的一般说明,浏览器不会识别注释的。其他代码最好不要写在这行代码前面,这行代码的意思是告诉浏览器,按照HTML5的规范去渲染页面。

一种代码格式规范而已,不用太在意

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632