偏移属性(左,上,下,右)仅适用于非静态位置吗?
它们可以应用于静态定位的元素吗?如果是这样,有什么区别 将它们应用于非静态定位的元素?
答案 0 :(得分:10)
到偏移一个元素,它的位置必须是position:relative
坐标top
,right
,bottom
和left
用于不同的目的,具体取决于元素是相对还是绝对定位。
元素偏移何时移动?
当你实际使用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;
。
现在,您可以使用top
,left
等转换它。
还有更多类型的position
,即position: fixed
和position: absolute
。
fixed
使元素固定在屏幕上并且不受滚动影响,因此就好像它被卡在计算机显示器上一样。设置其top
等设置位置。
absolute
使元素相对于文档定位并忽略所有布局规则。设置它的位置设置它在文档上的位置。
答案 2 :(得分:0)
它们可以应用于绝对位置元素和固定位置元素,这些元素基本相同,但固定始终使用文档窗口作为其锚点。您也可以将它们应用于相对定位的元素,在这种情况下,它们与最佳描述为默认的内联定位的偏移量。