Html 在什么情况下,相对定位优于绝对定位(反之亦然)?

Html 在什么情况下,相对定位优于绝对定位(反之亦然)?,html,css,positioning,Html,Css,Positioning,我正在设计一个网站,无法决定什么样的定位更好,相对的还是绝对的。我知道在过去,当我使用绝对定位并尝试重新调整浏览器大小时,它会偏离我放置的任何东西的位置。然而,如果我使用相对定位,并想改变一些东西,它似乎总是把页面上的所有其他东西都抛到一边 你们这些专业人士用什么 默认情况下,所有内容都保持静态(相对)。这样,当浏览器大小发生变化时,可以稍微调整大小。当窗口大小改变时,绝对定位(相对于整个网页)往往会使网页停止正常工作 然而,在某些情况下使用绝对位置总是有用的。但是,设置相对于其他元素的绝对元素

我正在设计一个网站,无法决定什么样的定位更好,相对的还是绝对的。我知道在过去,当我使用绝对定位并尝试重新调整浏览器大小时,它会偏离我放置的任何东西的位置。然而,如果我使用相对定位,并想改变一些东西,它似乎总是把页面上的所有其他东西都抛到一边

你们这些专业人士用什么

默认情况下,所有内容都保持静态(相对)。这样,当浏览器大小发生变化时,可以稍微调整大小。当窗口大小改变时,绝对定位(相对于整个网页)往往会使网页停止正常工作

然而,在某些情况下使用绝对位置总是有用的。但是,设置相对于其他元素的绝对元素-切勿使用相对于页面的绝对定位

绝对定位允许您将某些元素置于其他元素之上,例如:

<div style="position: relative; width: 100px; height: 100px">
  <img src="" width="100" height="100">
  <div style="position: absolute; left: 0; top: 0">Some text on top</div>
<div>

上面有一些文字
在上面的示例中,浏览器相对于某个对象定位绝对定位的div。某种东西是DOM层次结构上的第一个相对祖先。因此,它可以看到上面的div,并将其定位在相对于该div的(0,0)处。因此,一个div被放置在另一个div的上方,而另一个div当然是相对于页面的其余部分放置的

通常,当一个绝对元素位于另一个元素的上方并相对于另一个元素时,它将位于顶部。如果需要调整其他元素前面的内容,可以使用z-index css属性

  • 一般来说,最好是
    位置:static
  • 如果希望元素相对于窗口保持在相同的位置,最好的方法是
    position:fixed
  • 如果希望元素相对于父元素保持在相同的位置,最好的方法是
    位置:绝对
    位置
    与父元素的
    静态
    不同
  • 如果要从文档流中删除元素,最好的方法是
    position:absolute
    position:fixed
  • 如果您想上/下/右/左移动元素,但又不想影响周围的元素,最好是
    position:relative
  • 如果要向上/向下/向右/向左移动图元,并且要影响周围图元,请使用边距
  • 如果一个元素与另一个元素重叠,并且您希望看到第一个元素,那么最好是将
    位置:相对
    z-index
    组合使用

  • 在什么方面更好?很确定这会被关闭。这完全是主观的。我绝对会用绝对的,但它都是相对的。这个问题没有正确的答案。很好的悖论@Tom。无论如何,没有比这更“专业”的了,它们在不同的情况下都很有用。若要使绝对定位更有用,可以将所有包含元素设置为“相对”,以便绝对定位元素是相对于相对定位元素的位置。