如何设置 body 的最小高度

这是一个小问题,但却困扰我了一段时间。我的需求是当 body 标签内的内容高度小于浏览器可视区域的高度时,使其高度等于可视区域的高度,即高度不足时也要撑满可视区域。
google 了一下后,我得到了这样的解决方案:

html, body {
  height: 100%;
}

这解决了高度不足时的需求,但同时也带来了另一个问题,即 body 的高度被限死了,高度不足时,它可以撑满可视区域,但当 body 的内容高度超出可视区域时,它的高度却也不会随之增加。
很显然,我需要新的方案。于是,我想到了 min-height 属性,即最小高度。

html, body {
  min-height: 100%;
}

于是我把 html、body 的 min-height 设置为 100%,但很不幸,失败了。设置之后,html 的高度如愿以偿,body 却一如既往。
到了这一步,我很困惑。为什么 html 有了高度,body 却没有。于是我紧接着又尝试了一次。

html {
  min-height: 100%;
}
body {
  height: 100%;
}

再一次失败。
这一次我沉下心来,仔细思考了一下。我突然想到了 min-height 的百分比可能不是来源于父标签的 min-height,而是 height。于是我想到了解决办法。

html {
  height: 100%;
}
body {
  min-height: 100%;
}

最终的结果也证实了我的想法,html、body 标签的高度在高度不足时都撑满了可视区域,当内容高度超过可视区域时,它们也会被内容撑的更大。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,686评论 1 92
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,463评论 19 139
  • HTML标签解释大全 一、HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(D...
    米塔塔阅读 8,672评论 1 41
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 5,834评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 6,844评论 0 11