当前位置: 首页 > 知识库问答 >
问题:

height:100%还是min-height:100%用于html和body元素?

云承弼
2023-03-14

设计布局时,我将html,body元素的heighth设置为100%,但在某些情况下,这会失败,那么应该使用什么呢?

html, body {
   height: 100%;
}

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

好吧,这并不是基于观点的,因为每种方法都有自己的缺陷,所以推荐的方法是什么,为什么呢?

共有2个答案

帅煌
2023-03-14

您可以使用视口高度(VH)单位:

body {
    min-height: 100vh;
}

它是相对于屏幕,而不是父级高度,所以你不需要html高度:100%。

傅阿苏
2023-03-14

如果您试图将背景图像应用到填充整个浏览器窗口的htmlbody,则两者都不会。请改用此选项:

css prettyprint-override">html {
   height: 100%;
}

body {
   min-height: 100%;
}

这里给出了我的推理(这里我全面地解释了如何以这种方式应用背景):

顺便提一句,您之所以必须将heightmin-height分别指定为htmlbody,是因为这两个元素都没有任何内在高度。默认情况下,两者都是height:auto。视口具有100%的高度,因此height:100%取自视口,然后应用于body,作为允许滚动内容的最小值。

第一种方法是在两者上都使用height:100%,当body的内容开始超过视口高度时,它可以防止这些内容随其展开。从技术上讲,这并不能阻止内容的滚动,但它确实会导致body在折叠下面留下一个空隙,这通常是不希望的。

第二种方法是在两者上使用min-height:100%,不会导致body扩展到HTML的全部高度,因为除非HTML具有显式的height,否则带有百分比的min-heightbody不起作用。

为了完整起见,CSS2.1的第10节包含了所有细节,但这是一个极其复杂的阅读过程,因此如果您对我这里所解释的内容以外的内容不感兴趣,可以跳过它。

 类似资料:
  • 问题内容: 在设计布局时,我将元素设置为,但是在某些情况下,这失败了,那么应该使用什么? 要么 嗯,这不是基于意见的,因为每种方法都有其自身的缺陷,那么推荐的方法是什么?为什么? 问题答案: 如果你想背景图片适用于和,填补了整个浏览器窗口,两者都不是。使用此代替: 我的推理在这里给出(在此我全面解释如何以这种方式应用背景): 顺便说一句,你为什么要注明原因,并以和分别为,因为无论元素有什么内在的高

  • 描述 (Description) min-height属性用于设置元素高度的下限。 可能的值 (Possible Values) length - 任何长度单位。 该元素的高度值永远不会低于此距离。 percentage - 将元素的高度限制为至少包含块高度的百分比。 适用于 (Applies to) 除了未替换的内联元素和表元素之外的所有HTML元素。 DOM语法 (DOM Syntax) ob

  • 有如下html代码: 很好奇父元素200px是怎么来的,说明min-height生效了吗?但是如果是min-height生效了,又因为子元素300px,不是会自适应吗? 想知道200px怎么作用的,如果是min-height生效,那为什么父元素最后的高度不是和子元素高度一样

  • 本文向大家介绍css如何让height:100%起作用?相关面试题,主要包含被问及css如何让height:100%起作用?时的应答技巧和注意事项,需要的朋友参考一下 先说结论,当前元素的包含块的高度是明确的即可有效(height不为auto),如果当前元素的包含块高度也是百分比,就再向上找。 可能不是很严谨,但是比较受用,但是在测试的过程中有一些奇怪的问题,和绝对定位有关系。 如果当前元素是ab

  • 本文向大家介绍css的height:100%和height:inherit有什么区别?相关面试题,主要包含被问及css的height:100%和height:inherit有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 兼容问题 100% ie 6 inherit ie 8 父级判断 在position: absolute的情况下 height:100%对应的标准是上一个 position

  • 问题内容: 好的,所以我还没有找到答案的问题,所以我决定自己做。 我正在尝试创建100%流畅的布局,从技术上讲,我已经做到了。 但是,我现在要做的是使页面高度达到100%…但是我不希望页面滚动,而我希望内部DIV滚动。 因此,我相信总而言之,我希望它检测视口屏幕的高度,移至100%,然后,如果IF内容比屏幕长,则滚动特定的DIV,而不是页面。 我希望这是有道理的。 提前致谢。贾斯汀 问题答案: 这

  • 本文向大家介绍css的height:100%和height:inherit之间有什么区别呢?相关面试题,主要包含被问及css的height:100%和height:inherit之间有什么区别呢?时的应答技巧和注意事项,需要的朋友参考一下 CSS中height:100%和height:inherit的异同 上网找到的这个好几年前的答案

  • 本文向大家介绍line-height和height的区别?相关面试题,主要包含被问及line-height和height的区别?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: line-height一般是指布局里面一段文字上下行之间的高度,是针对字体来设置的,height一般是指容器的整体高度,