【发布时间】:2021-04-29 18:13:33
【问题描述】:
我有下面一段 html
<div style="position: relative; box-sizing: border-box; width: 400px; height: 400px; padding-top: 20px;">
<div style="position: absolute; height: 80%; background-color: aqua; width: 100%;"></div>
<div style="height: 80%; background-color: black; width: 100%;"></div>
</div>
我有一个高度为 400 像素的父 div 和两个子 div,每个子 div 的高度为 80%。
- 第一个 div 具有绝对位置,这个具有正确的高度 (400 * 0.8) = 320px。
- 第二个 div 大小是 304px,比较小。
经过反复试验,我发现父 div 上的 padding-top: 20px 导致了这种情况。
有人可以向我解释为什么会发生这种情况以及如何使 div 大小相同吗?
这似乎发生在所有主流浏览器中。
【问题讨论】:
-
当你给出 position:absolute 时,你的元素会从正常的文档流中移除,并且不会为页面布局中的元素创建空间。它是相对于其最近的祖先定位的,因此它不受填充影响,但其他 div 受到影响。
标签: html css css-position padding