html - 为什么不能在元素中放置内容?
问题描述
我的朋友试图编写这样的网站
<html>
<head>
<style>
h1 {
color: red;
}
</style>
<div>
<h1>
My Website
</h1>
</div>
</head>
<body>
<nav>
<a>example link</a>
</nav>
</body>
他没有使用 <!DOCTYPE html> 并且他还把他的页眉放在了 <head> 元素中。当我试图告诉他你需要一个 <!DOCTYPE html> 并且你不能将内容放在 <head> 元素中时,他说它工作得很好,你仍然没有告诉我这样做有什么问题。我不知道向他解释,所以有人可以说你为什么不能这样做吗?
解决方案
你朋友提出的结构违反了 HTML 文档的全局结构;标签必须包含文档的<body>
实际内容,而<head>
标签必须只包含描述文档的信息。
而
<head>
标签是为元数据内容 (例如)保留的<meta>
:并且该
<div>
元素必须位于接受流内容的父级中:
不正确的标记实际上会在页面上正确呈现,因为大多数浏览器实际上足够智能,可以知道标记不正确,并自行纠正。如果您检查 DOM,您会发现它已自动更新以正确地将<div>
元素(及其内容)移动到元素内<body>
(就在之前 <nav>
):
推荐阅读
- laravel - Laravel 转换咨询 sql 一个 queryBuilder(Laravel)
- javascript - 如何设置 Jquery Toggle 默认显示或隐藏使用 html 类控件?
- android - 尝试使用 MutableLiveData 值时出现 NullPointerException
- php - Laravel 获取连接表的最新行
- awk - 如何将 YAML 拆分为具有正确名称的多个文件
- java - 为什么与布尔数组相比,位向量只能将空间使用量减少八倍?
- java - 反应式 java 将 Mono 对象转换为没有 block() 的对象;
- python - pandas:如何将字典转换为转置数据框?
- database - 如何查看雪花数据库的克隆属性
- matlab - 根据数值调整 fprintf 中的字符串格式