在CSS中,静态(默认)定位和相对定位之间有什么区别?
Answers:
静态定位是元素的默认定位模型。它们显示在页面中,作为标准HTML流程的一部分呈现。静态定位的元素不服从left
,top
,right
和bottom
规则:
相对定位,可以指定一个特定的偏移量(left
,top
等等),这是相对于在HTML流动的元件的正常位置。因此,如果我的文本框内有一个文本框,则div
可以在文本框上应用相对位置,以使其显示在相对于通常放置在的位置的特定位置div
:
还有绝对定位-您可以在其中指定元素相对于整个文档的确切位置,或者在元素树中指定下一个相对定位的元素:
当将aposition: relative
应用于层次结构中的父元素时:
请注意,绝对位置元素是如何由相对位置元素绑定的。
最后是固定的。固定位置将元素限制在视口中的特定位置,该位置在滚动过程中保持在原位:
您可能还会观察到固定位置的元素不会导致滚动的行为,因为它们不被视口绑定:
而绝对放置的元素仍受视口约束,并会导致滚动:
..除非您的父元素当然overflow: ?
用来确定滚动的行为(如果有)。
通过绝对定位和固定定位,可以将元素从HTML流中删除。
static
和relative
元素相同,除了后者可以将其相对于其原始位置而不是相对于包含元素重新定位(即出现的位置absolute
)。而且,就像任何使用值之外的元素定位一样,static
您都可以使用z-index
。
position: static;
而不是简单地将其替换position: relative;
为默认值?如果您不想放置其他物品top: 0;
,left: 0;
那么我们就不做吧,对吧?是否存在position: static;
作为CSS一部分仍需要的基本原因?
您可以在这里看到一个简单的概述:W3School
另外,如果我没记错的话,在声明一个相对的元素时,默认情况下它会保留在其他位置,但是您可以相对于此元素将元素相对于其中的绝对位置定位,这对我来说非常有用在过去。
回答“为什么CSS仍将实现位置:静态;” 在一个场景中,为父级使用position:relative和为子级使用position:absolute限制子级的缩放宽度。在水平菜单系统中,您可能会有链接的“列”,使用“ width:auto”不适用于相对的父级。在这种情况下,将其更改为“静态”将允许宽度根据其中的内容而变化。
我花了好几个小时,想知道为什么我不能让我的容器根据其中的内容量进行调整。希望这可以帮助!
相对位置是相对于正常流量。该元素的相对位置(带有偏移量)相对于该元素正常移动(如果不移动)的位置。
Matthew Abbott有一个很好的答案。
绝对和相对定位的项服从top
,left
,right
和bottom
命令(偏移),其中静态定位的内容没有。
相对定位的项目会偏离它们通常在html中的位置。
绝对定位的项目将偏移文档或DOM树中下一个相对定位的元素。
position: relative
,而从不输入position: static
:)