CSS偏移属性和静态位置

时间:2011-04-09 00:47:33

标签: css positioning

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

它们可以应用于静态定位的元素吗?如果是这样,有什么区别 将它们应用于非静态定位的元素?

3 个答案:

答案 0 :(得分:10)

偏移一个元素,它的位置必须是position:relative

坐标toprightbottomleft用于不同的目的,具体取决于元素是相对还是绝对定位。

元素偏移何时移动?

当你实际使用position: relative;进行偏移时,元素不会从流中移除,实际上,如果元素保持静态(默认值),该元素将占用的空间仍为它保留,因此你刚从它的原始位置抵消它。即使你没有抵消它的前任,它后面的任何元素都会显示在它所能完成的位置 - 比如example

移动,而非抵消

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

<强>摘要

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

  • relative是保留空间,坐标会将其从原始空间中抵消

  • absolute将从流中移除元素,坐标将根据containing block来计算,{{3}}是最近的相对定位的祖先(或body元素如果没有相对定位的祖先存在)

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

最后,如果某个元素的位置是静态的默认值,则该元素将不接受z-index,因此未应用任何坐标的position: relative; 类似到{{1但它对于z-indexing非常有用,并且是绝对定位元素的包含块

答案 1 :(得分:1)

将它们应用于position: static元素毫无意义,因为它们是静态的。

要将静态元素移动超过一定数量,您可以将其position属性更改为position: relative;

现在,您可以使用topleft等转换它。

还有更多类型的position,即position: fixedposition: absolute

fixed使元素固定在屏幕上并且不受滚动影响,因此就好像它被卡在计算机显示器上一样。设置其top等设置位置。

absolute使元素相对于文档定位并忽略所有布局规则。设置它的位置设置它在文档上的位置。

答案 2 :(得分:0)

它们可以应用于绝对位置元素和固定位置元素,这些元素基本相同,但固定始终使用文档窗口作为其锚点。您也可以将它们应用于相对定位的元素,在这种情况下,它们与最佳描述为默认的内联定位的偏移量。