CSS偏移属性和静态位置

DrS*_*ove 8 css positioning

偏移属性(左,上,下,右)仅适用于非静态位置吗?

它们可以应用于静态定位的元素吗?如果是这样,将它们应用于非静态定位元素有何不同?

cla*_*uzy 11

抵消一个元素它的位置必须position:relative

坐标,topright,根据元素是相对还是绝对定位bottomleft用于不同的目的.

什么是元素偏移而不是移动?

当你实际使用position: relative;元素偏移时,没有从流中移除,实际上,如果元素保持静态(默认值),该元素将占用的空间仍然为它保留,因此你刚刚从它的原始位置偏移它.它后面的任何元素都会出现在它可能已经完成的位置,即使你没有偏移它的前身 - 就像这个例子

移动,而不是抵消

但是,如果你真的想要移动一个元素,那么它需要从流中移除,所以没有为它保留空间,然后那就是当你使用position:absolute;或修复时..这就是区别

摘要

  • static 是默认值,您只需使用边距移动它,它将忽略坐标和z-index

  • relative 是预留空间,坐标将偏离它的原始空间

  • absolute将从流中移除元素,并且将根据其包含块来计算坐标,该是最近的相对定位的祖先(或者body如果不存在相对定位的祖先则该元素)

  • fixed 没有包含块,即你不能指定它应该相对于哪个元素定位,它只是相对于视口固定自己

最后的元件将不接受z-index,如果是位置是静态的默认值,所以position: relative;不应用任何坐标是相似static,但它是对于Z-索引和作为一个包含块可用于绝对定位元素