出于好奇,考虑一下下面的示例,为什么#CONTAINER div上的页边距会导致浏览器中出现一个垂直滚动条?容器的高度比设置为100%的主体高度小得多.

我已经将除#容器之外的所有元素的填充和边距设置为0.请注意,我故意忽略了#container div上的绝对位置.在这种情况下,浏览器如何计算身体的高度,以及边距如何影响身体的高度?

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
* { padding:0; margin:0;}
html, body { height:100%; }
#container
{
  padding:10px;
  margin:50px;
  border:1px solid black;
  width: 200px;
  height: 100px;
}
</style>
</head>
<body>
  <div id='container'>
  </div>
</body>
</html>

示例也在JSFiddle

推荐答案

If you paint the backgrounds of html and body (giving each its own color),你会很快注意到body#container一起下移,#container本身根本没有从body的顶部偏移.这是margin collapse的副作用,我将详细介绍here(尽管这个答案描述了一个稍微不同的设置).

正是这种行为导致了滚动条的出现,因为您已经声明body的高度是htmlbody%.请注意,实际高度body不受影响,因为高度计算中从不包括页边距.

Html相关问答推荐

R中的动态Webscraping

如何只混合部分的背景而不是内容<>

有没有可能设置div的边框宽度相对于其父宽度和高度?'

子元素以元素X开始和结束的元素的XPath?

需要帮助实现悬停动画效果

VBA从公共Google Drive地址下载文档-.Click事件(?)

如何在一行文本溢出省略号后显示文本?

我希望创建一个对角手风琴与不同的内容(文本和图像)在其正常状态和其他元素悬停

如何保持嵌套进度条的背景色?

带下划线的文本应该有延长的下划线,以使其图像悬停

HX-POST未使用正确的操作(路径)

配置了 HTML 视口的 Google Apps 脚本移动网络应用程序无法正确显示

当浏览器宽度减小时字体大小变得太大

如何检测输入字段是否没有必填且没有占位符?

我如何设置括号的样式,使它们不会挂在旁边的其他字符下面

在身体外部创建 tanget 45° div

从右到左支持百分号

在 SQL 中合并 HTML 表中的单元格

我可以在标签元素中使用标题元素吗?

动态使用时波浪号不转换为绝对路径