html - 删除 html/body 高度底部的空白 : 100% layout

标签 html css

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

但是,这会导致页面底部出现恼人的空白,进而导致整个页面出现恼人的滚动条。

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

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

<body><div id="box1"></div><div id="box2"></div></body>

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;
}

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

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

编辑:针对评论(似乎已经消失),问题在 Firefox 49.02 的 Fiddle 和 Windows 10 的 Edge 38.14393.0.0 中重复出现。它也出现在 Chrome 54.0.2840.71 中,但较少很明显(如果我将窗口最大化,滚动条似乎不会移动)。

最佳答案

我相信有些人会对此进行补充,但这是我的理解...

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

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

...空白将消失。在你的 fiddle 中使用 line-height 来改变你的空白空间量。 14px 及以上的值开始为我添加空格。

关于html - 删除 html/body 高度底部的空白 : 100% layout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40562282/

相关文章:

html - 为什么我的文本字符串以一种奇怪的方式换行? (HTML/CSS)

Javascript 显示根 XML 文件中有多少个元素

javascript - 在 Jquery 中执行 replaceWith 时,文本在特殊字符后被 chop

css - HTML 5 Doctype 声明与 IE 混淆

javascript - CSS翻转动画?

html - 从无显示到显示 block 的 Css 转换,使用 subnav 导航

javascript - 什么更便携 : pseudo class ":hover" or jQuery's "hover()"?

html - 仅在特定屏幕分辨率下自动缩放?

html - 简单的 Bootstrap 页面上的错误布局和包装

javascript - 点击动画div