3

是否可以将一个div相对于另一个div不是它的父母的相对定位?例如:

<div id="header"><!-- --></div>
<div id="content"><!-- --></div>
<div id="footer"><<!-- --></div>

在上面的代码中,可以#footer相对定位到#header?

更新

我问是因为我打算实现的设计的语义结构与我想要呈现它的方式不匹配。在视觉上,我将在页面顶部有一个菜单和一个隐藏的 div,它会在单击事件时滑入菜单上方。因此,我需要打乱顺序或 div 以使 a#menu相对位于 a 下方,并且在 jQuery事件上滑动#header时将保持相对定位。#headerslideToggle()

<div id="menu"><!-- --></div>
<div id="header"><!-- --></div>
<div id="content"><!-- --></div>
<div id="footer"><<!-- --></div>

#header应该固定在窗口的顶部。#menu应该相对于#header这样定位,当#header滑入时,#menu向下滑动相同的距离。

4

2 回答 2

1

是的。您还没有说您希望它们如何定位,但是您可以像这样获得当前#header使用的位置offset

var pos = $("#header").offset();

...您可以#footer通过以下任一方式设置所需的位置css

$("#footer").css({
    position: "absolute",
    left:     /* some value here*/,
    top:      /* some value here*/
});

...或通过offset

$("#footer").offset({
    left:     /* some value here*/,
    top:      /* some value here*/
});

...根据标题的位置,您在哪里(在任何一种情况下)填写所需的左侧和顶部值。

offset接受left和的数字topArcher在评论中告诉我们,这css同样适用并"px"为我们添加,这似乎确实有效,尽管我在文档中没有看到它,所以我总是把“px”放在自己身上。

于 2012-12-07T12:00:33.680 回答
0

如何在 jQuery 中移动 HTML 元素?

这个问题提供了我需要的答案。基本上你可以使用 jQuery 在页面加载时移动 DOM 中的元素;请注意,在尝试操作 DOM 之前允许页面先加载很重要。

于 2012-12-24T13:41:55.113 回答