我遇到了一个意想不到的行为。我想将body
的最小高度设置为视口的高度(100 vh),然后创建一个div
(与容器类)在里面,这将采取整个高度的身体(100%),使div将至少扩展到所有的高度的视口。除了这不会发生;实现这个结果的唯一方法是将html
和body
的高度设置为100%。是什么技术原因导致这种情况发生?div不应该取其父元素的100%的高度吗?
Here you can find a codepen with the expected behaviour commented out at the end of the css
*,
*::after,
*::before {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background: #ddd;
min-height: 100vh;
}
.container {
background: #aaa;
max-width: 500px;
margin: 0 auto;
padding: 1rem;
min-height: 100%;
height: 100%;
}
/* Uncomment for the expected behaviour */
/*
html,
body {
height: 100%
}
*/
个字符
3条答案
按热度按时间wpx232ag1#
答案很简单,因为百分比
min-height
是基于父容器的height
值而不是min-height
计算的。个字符
但是,对于
min-height:inherit
,它会从父容器继承min-height
值。的字符串
如果
.container
总是覆盖视口高度,我会直接在min-height:100%
上设置.container
。yqhsw0fo2#
个字符
mbjcgjjk3#
这个想法是min-height是100 vh或100%的情况下内容大于100 vh。
字符串