删除 html/body 高度底部的空白:100% 布局

Rei*_*977 5 html css

我试图将页面分成两个相等的区域,每个区域占据页面高度的 100% 和页面宽度的 50%。

但是,这会导致页面底部出现烦人的空白,这也会导致整个页面上出现烦人的滚动条。

通常,我会使用浏览器的 DOM 检查器来查找导致不需要空间的原因,但在这里没有用,因为空格似乎位于 html 标记之外(?!)。

HTML如下(为清楚起见,省略了正文之外的所有内容)

<body><div id="box1"></div><div id="box2"></div></body>
Run Code Online (Sandbox Code Playgroud)

CSS如下:

* { box-sizing: border-box; border: 1px solid red; }

html, body {
  margin: 0;
  padding: 0;
  height: 100%;
}

div {
  display: inline-block;
}

#box1 {
  height: 100%;
  width: 50%;
  background-color: blue;
}

#box2 {
  height: 100%;
  width: 50%;
  background-color: green;
}
Run Code Online (Sandbox Code Playgroud)

我还创建了一个JSFiddle,它设法复制了这个问题。

我遇到了这个看起来很相似的问题,但是那里的答案都没有解释为什么会发生这种情况(这个答案确实提供了何时存在 img 标签的解释),并且所有修复似乎都像是黑客或变通方法。

编辑:为了回应评论(似乎已经消失),该问题在 Windows 10 上的 Firefox 49.02 和 Edge 38.14393.0.0 中的 Fiddle 中复制。它也发生在 Chrome 54.0.2840.71 中,但不太明显(和如果窗口最大化,滚动条似乎不会移动)。

Ste*_*eve 3

我相信有些人会补充这一点,但这是我的理解......

你有div {display: inline-block;}。内联块有点像块,但被视为文本,因此行高很重要。如果您将 CSS 的第一行更新为...

* { box-sizing: border-box; border: 1px solid red; line-height: 0;}
Run Code Online (Sandbox Code Playgroud)

...空白将会消失。在小提琴中尝试使用行高来改变空白量。14px 及以上的值开始为我添加空白。