考虑下面的代码片段:
html {
margin: 0;
padding: 0;
background-color: blue;
}
body {
margin: 0;
padding: 0;
background-color: green;
min-height: 100vh;
}
<section style="min-height: 50px; background-color: pink;"></section>
现在,假设您想要做一些非常简单的事情,比如在section元素中设置一个margin:
style="min-height: 50px; background-color: pink; margin-bottom: 10px;"
。出乎意料的是,html元素的蓝色条出现在视口底部。
html {
margin: 0;
padding: 0;
background-color: blue;
}
body {
margin: 0;
padding: 0;
background-color: green;
min-height: 100vh;
}
<section style="min-height: 50px; background-color: pink; margin-bottom: 10px;"></section>
问题1) 为什么会出现这种行为?我无法理解。
纠正这种行为的一种方法是在元素中包含填充和min-height
calc() 调整:
html {
margin: 0;
padding: 0;
background-color: blue;
}
body {
margin: 0;
padding: 0;
padding-bottom: 1px;
background-color: green;
min-height: calc(100vh - 1px);
}
<section style="min-height: 50px; background-color: pink; margin-bottom: 10px;"></section>
然而,这个解决方案需要使用一个我不太熟悉的技巧。
问题2 是否有更好的解决方案?(即:更直观、更易读)