CSS:绝对定位的替代方法

a0zr77ik  于 2022-12-27  发布在  其他
关注(0)|答案(4)|浏览(216)

我有以下标记:

<div id="playArea" style="position: relative;">
    <div style="position: absolute; left: 295px; top: -1px; width: 313px; height: 269px;">Hello</div>
    <div style="position: absolute; left: 63px; top: 35px; width: 80px; height: 42px;">World</div>
    <div style="position: absolute; left: 534px; top: 329px; width: 183px; height: 251px;">Bye</div>
</div>

但是我希望在“playArea”div下有一段文本,但是因为playArea中的所有div都是绝对的,所以文本不会出现在最后一个绝对定位的div的底部。
我已经研究过这个问题,并找到了一个替代方法,使用float:left和clear:left,但是在第一个div上使用这个方法后,你不能正确地定位div,因为第二个div的起点在第一个div下面,而不是在(0,0)。
谢啦,谢啦

f0ofjuux

f0ofjuux1#

如果我没理解错的话,您只需要给予“playArea”div一个正确的高度。
编辑:我的意思是,里面所有东西的总高度。

3pmvbmvn

3pmvbmvn2#

  • 但我希望在'playArea' div下有一段文本,但由于playArea中的所有div都是绝对值,因此文本不会出现在最后一个绝对值定位的div的底部。*

因为您似乎已经知道所有的维度和位置,所以只需向其添加另一个绝对定位的div,并将相对内容放入其中。

  • 我已经研究过这个问题,并找到了一个替代方法,使用float:left和clear:left,但是在第一个div上使用这个方法后,你不能正确地定位div,因为第二个div的起点在第一个div的下面,而不是在(0,0)。

你需要删除position: absolute来得到正确的浮点数。仅仅宽度和高度就足够了。

nc1teljy

nc1teljy3#

将三个内部div向左浮动,将overflow: hidden;放在playArea div上,并将<p>放在三个内部div下,clear: both;

y3bcpkx1

y3bcpkx14#

在阅读了你和BalusC之间的评论之后,你似乎已经修改了你的CSS,现在尝试浮动你的项目,并使用margin-top和margin-left来定位。你完全可以这样做,但你忘记了你也可以使用负边距来定位你的元素。例如,如果你使用**margin-top:-10px;**那么它会把元素拉高(而不是像正常的正值保证金那样把它拉低)。其他所有保证金也是如此。
这似乎是你现在缺少的成分。

相关问题