首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >相对地定位所有元素有什么问题吗?

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

Stack Overflow用户
提问于 2014-04-11 09:54:55
回答 4查看 293关注 0票数 6

通常,我会将一个类附加到一个元素上,这样我就可以使用position: relative;来定位它的子元素了。

如果我要写的话,有什么不对的地方,或者我应该说,有什么东西会破裂吗?

代码语言:javascript
运行
复制
* {
  position: relative;
}

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

代码语言:javascript
运行
复制
div, navbar, footer, section, aside, header, article {
  position: relative;
}

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

“默认情况下,HTML元素是静态的。静态定位元素总是根据页面的正常流程定位。”

根据同一源,除非用CSS覆盖,否则相对定位的元素也会根据页面的正常流进行定位:

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-04-11 10:05:09

是的,是这样的。如果您试图定位一个元素absolute,它的位置相对于最近的祖先,它有一个CSS position而不是static

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

但是,您可能希望将绝对元素相对于DOM树中更高的元素定位,或者绝对定位在页面主体上。

在某一时刻,您将遇到无法完全控制HTML的情况。然后,您将看到,设置所有relative都是适得其反的。

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

票数 7
EN

Stack Overflow用户

发布于 2014-04-11 10:12:54

如果将position: relative应用于页面中的所有元素,您将无法有效地使用position: absolute,因为您无法将一个元素定位到祖父母,而且您可能会以一种不可预测的方式破坏依赖position: absolute的外部插件/模块。

您可能会遇到z-index的问题(例如在下拉菜单中),最后您将用position: staticposition: absolute覆盖这种行为。

票数 2
EN

Stack Overflow用户

发布于 2014-04-11 10:05:09

至于我使用的位置:相对是不好的-因为有时你需要定位相对浏览器窗口,它会给你一个问题。但是如果你确信你不会这么做,那就去做吧

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23009288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档