CSS固定/绝对定位到较早的相对位置?

CSS固定/绝对定位到较早的相对位置?,css,positioning,fixed,Css,Positioning,Fixed,我想这里有一个非常特殊的情况 我和很多人一起工作。现在我正在一个包含的内容文件中编码。那里我需要一个灯箱,它有一个20%的黑色背景覆盖整个页面,包括头部是固定的,并在以前的PHP文件中设置为z-index 200 由于包含这些内容,#overlay wrapper被放置在#content中,这是由于其他原因位置:relative。包装的宽度和高度为100%,z指数为1000。但是,从逻辑上讲,它只覆盖内容区域,而不是整个视口 基本上,我现在需要一种方法来告诉#overlay wrapper相对于

我想这里有一个非常特殊的情况

我和很多人一起工作。现在我正在一个包含的内容文件中编码。那里我需要一个灯箱,它有一个20%的黑色背景覆盖整个页面,包括头部是固定的,并在以前的PHP文件中设置为z-index 200

由于包含这些内容,
#overlay wrapper
被放置在
#content
中,这是由于其他原因
位置:relative
。包装的宽度和高度为100%,z指数为1000。但是,从逻辑上讲,它只覆盖内容区域,而不是整个视口

基本上,我现在需要一种方法来告诉
#overlay wrapper
相对于主体定位,而不告诉内容不要是相对的,因为正如前面提到的,我需要它在其他情况下是相对的

将覆盖放在另一个文件中会很痛苦,我只是好奇是否可以告诉一个框相对于一个“较早”的父对象而不仅仅是他找到的第一个父对象进行定位。

只要覆盖包装器在
\content
内并且
\content
相对定位,
#覆盖包装
将始终相对于
#内容
定位。如果不在DOM中重新定位
#overlay wrapper
,就无法解决这个问题


您需要将
#overlay wrapper
移出
#content
,或者通过修改您的PHP包含(甚至可以将其移动到单独的包含中并包含在其他位置),或者使用JavaScript在页面加载时重新定位它。

我想您忘记发布代码了。:)至于这个问题,如果您有权访问jQuery UI,您可以使用
.position()
。绝对定位的元素将始终相对于它拥有的第一个相对定位的父元素。当你说覆盖是100%的宽度和高度时,应该是屏幕还是内容分区?如果是屏幕,则只需将其固定而不是绝对,因为固定始终相对于视口定位