相对定位所有元素有什么问题吗?

Jon*_*yte 5 html css css-position

我常常发现自己将一个类附加到一个元素上,只是为了让它可以position: relative;让我的孩子使用它position: absolute;

如果我写的话会有什么不妥,或者我应该说会有什么问题吗?

* {
  position: relative;
}
Run Code Online (Sandbox Code Playgroud)

或者可能是下面的例子,因为这些通常是我需要相对定位的唯一元素:

div, navbar, footer, section, aside, header, article {
  position: relative;
}
Run Code Online (Sandbox Code Playgroud)

根据W3schools,position: static;默认情况下所有元素都是根据页面的正常流程定位的.

"HTML元素默认定位为静态.静态定位元素总是根据页面的正常流程定位."

并且根据相同的来源,相对定位的元素也根据页面的正常流程定位,除非被CSS覆盖:

"相对定位元素的内容可以移动并与其他元素重叠,但元素的保留空间仍然保留在正常流程中."

yun*_*zen 5

是的.如果你试图定位一个元素,absolute它相对于最近的祖先定位,它具有position除了之外的CSS static.

如果每个元素都有position:relative,那么这将是直接父元素.

但是您可能希望将绝对元素相对于DOM树中的元素进一步放置,或者可能绝对位于页面主体上.

在某些时候,您将遇到无法完全控制HTML的情况.然后你会看到,设置一切都会适得其反relative.

一个例子可能是phat图层菜单..menu在层次ul li元素的丛林深处的某个类中有层.这应该相对于.menu元素的位置定位.您可能不想在此处更改DOM树.