2014-05-13 36 views
0

我想我在这里有一种超特殊情况。CSS固定/绝对定位到更早的亲戚?

我正与许多包括。现在我正在编写一个包含的内容文件。在那里,我需要一个灯箱,其中包含整个页面的20%的黑色背景,其中包括标题,它是固定的,并且在先前的PHP文件中设置为z-index 200.

#overlay-wrapper因为这些包括在#content,这是由于其他原因position: relative。包装的宽度和高度都是100%,z-index是1000.但是,从逻辑上讲,它只覆盖内容区域而不是整个视口。

基本上我现在需要一种方法来告诉#overlay-wrapper相对于身体而不告诉内容不是相对的,因为如上所述,我需要它在其他情况下是相对的。

将覆盖文件放在另一个文件中会很痛苦,我只是好奇,是否可以告诉一个盒子相对于“更早”的父亲而言,而不仅仅是他发现的第一个。

+2

我想你忘了发布你的代码。 :)至于问题,如果你有权访问jQuery UI,你可以使用'.position()'。 – kmoe

+0

一个绝对定位的元素将永远是相对于它所具有的第一个相对定位的父元素。当你说叠加宽度和高度是100%时,应该是屏幕还是#content div?如果是屏幕,只需将其固定而不是绝对的,因为固定总是相对于视口定位 – Pete

回答

0

只要#overlay-wrapper是内#content#content被相对定位,#overlay-wrapper将始终相对于#content定位。如果不在DOM中重新定位#overlay-wrapper,则无法解决此问题。

您需要通过修改您的PHP包含(甚至可能将它移动到单独的包含其自己并包括其他地方)或通过使用JavaScript在页面加载时重新定位它,您需要将#overlay-wrapper移出#content