html - 将 CSS 应用于 HTML 标签时 HTML 元素边距工作很奇怪
问题描述
我无意中看到了这个问题。但它看起来很奇怪,我试图理解这里发生了什么,但我找不到任何答案。谁能解释我这个问题?
看看这个css。标题具有顶部边距,但边距未应用于 heder 元素。我的解释是我看到标题顶部的小红色空间。但这是行不通的。
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
background-color: white;
}
body {
background-color: red;
margin: 20px;
}
header {
height: 100vh;
margin-top: 20px;
background-color: blue;
}
解决方案
这是由于所谓的边距崩溃而发生的。正如 MDN所说:
块的顶部和底部边距有时会合并(折叠)成单个边距,其大小是单个边距中最大的一个(或者只是其中一个,如果它们相等),这种行为称为边距折叠。
换句话说,因为body
和header
都具有顶部边距,所以浏览器会选择最大的(在您的情况下它们是相同的)并仅应用一个。
推荐阅读
- javascript - 来自 API 的 xml 数据有多个未定义的名称空间 - 如何使用 xslt 在 html 中显示它?
- ios - 在 iOS 上使用 swift 绘制视图后,以编程方式绘制新图层以查看
- python - Matplotlib 版本与 Anaconda 版本不匹配
- azure - 无法访问视频索引器 API?
- c# - C# 在彼此内部使用 const 字符串和参数
- javascript - Mesh 使用了太多的绘制调用
- json - Android Studio Gradle 错误:缺少 project_info 对象
- jquery - 为 jQuery UI 模式对话框设置 Cookie
- javascript - 在Javascript中单击按钮更改按钮的颜色
- php - 检查数组中的相同值