基本上就是标题。我一直在使用边距定位而不是像position: relative
这样的东西来完成我的工作,只是因为我不知道你可以用那种方式来控制它。
margin
应该做什么,为什么我应该使用position
,当margin
可以完成任务时呢?
简而言之,margin会在元素的框周围添加空间,并修改在页面流中为其保留的空间量以匹配。所以顶部margin会将块向下移动,同时也会将其后面的所有内容向下移动。底部margin会将其后面的内容往下移动,同时将块本身保持在原地。这非常直观,可能正是你期望的行为。
相对定位会产生一些奇怪的效果:它改变了一个块的绘制位置,但不改变为其保留的空间位置。因此,如果您使用相对定位并设置top为10px,则一个框将向下移动10px - 但是其后面的内容不会移动。这可能会导致一个框与其后面的内容重叠。
如果您真的想要一种奇怪的效果(并看到相对定位的实际效果),请将float: left和relative positioning同时应用于一个小块。该块将被移动,但为其保留的区域将保持在其原始位置。
我为您做了一个例子:
<div style="position: relative; left: -100px; width: 100px; height: 100px; float: left;">
</div> (lorem ipsum text)
top
会被忽略,所以我不确定你的前提是否正确。 - harpo