css - 为什么不用margin定位,而是用position :relative top 5px?

标签 css html

标题,基本上。我一直在使用边距定位而不是像 position: relative 这样的东西来做我的很多工作,只是因为我不知道你可以那样控制它。

margin 应该做什么,为什么我应该在 margin 完成工作时使用 position

最佳答案

简而言之,边距在元素框周围增加空间,并修改页面流中为其保留的空间量以匹配。因此,顶部边距向下移动一个 block ,同时也向下移动跟随它的所有内容。底部边距将跟随它的内容向下移动,同时将 block 本身留在同一位置。这非常直观,并且可能完全符合您的预期。

相对定位做了一些奇怪的事情:它改变了 block 被绘制的位置,但没有为它保留的空间。因此,如果您使用相对定位并将顶部设置为 10px,则一个框将在页面下方移动 10px——但它之后的内容不会移动。这可能会导致框与其后的内容重叠。

如果您真的想要一个奇怪的效果(并查看相对定位的实际效果),请将 float: left 和相对定位应用于一个小块。该 block 将被移动,但为其预留的区域将保留在其原始位置。

我给你举了个例子:

<div style="position: relative; left: -100px; width: 100px; height: 100px; float: left;">
</div> (lorem ipsum text)

Fiddle

关于css - 为什么不用margin定位,而是用position :relative top 5px?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050924/

相关文章:

javascript - Jquery 淡入/淡出

javascript - HTML5 数据属性与值?

javascript - 动态调整 Canvas 及其内容的大小

html - 让滚动条出现在div里面

css - 非插图显示可折叠设置太宽

html - 下拉菜单样式问题

javascript - 为出生日期字段组合日期选择器边框问题

android - 导航菜单(响应式)和列在移动设备上无法正确查看

jquery - 单击时在多张照片上添加复选标记

css - 推送 div 内容以进行提醒