2012-12-07 81 views
2

是否可以將div相對於另一個div進行定位?例如:位置div相對於非父div - 這可能嗎?

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

在上面的代碼,可以#footer被相對定位成#header

UPDATE

我問,因爲我打算實施我想提出的方式不符合設計的語義結構。在視覺上,我會在頁面頂部有一個菜單和一個隱藏的div,它會在點擊事件的菜單上滑動。因此,我需要對訂單或div進行洗牌,以使#menu相對定位在#header以下,並且當#header在jQuery slideToggle()事件中滑入時將保持相對定位。

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

#header應固定在窗口的頂部。 #menu應相對於#header定位,以便當#header滑入時,#menu向下滑動相同的距離。

+0

你試圖解決的實際問題是什麼? – thirtydot

+0

實際上,當我們添加div的時候,它會自動相互對應,所以如果想要移動div而不觸及我們的標記,所以我們可以使用定位,但是在這裏我們不瞭解您的確切要求,因此您可以發佈圖像您想要的結果....... –

+0

更新了有關該問題的更多詳細信息。 – Graeme

回答

0

How do I move an HTML element in jQuery?

這個問題我提供所需的答案。基本上你可以使用jQuery在頁面加載時移動DOM中的元素;請注意,在嘗試操作DOM之前,首先加載頁面非常重要。

1

是的。你還沒說你想怎麼定位他們,但你可以使用offset這樣得到的#header當前位置:

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

...並通過任一css您可以根據需要設置的#footer位置:

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

...或offset

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

...這裏(在這兩種情況下),你˚F根據標題的位置,在你想要的左邊和頂部的數值中生病。

offset接受lefttop的號碼。 Archer在評論中告訴我們css可以做到這一點,併爲我們添加了"px",雖然我沒有在文檔中看到它,但似乎確實起作用,所以我總是把「px」放在自己身上。

+1

我也建議使用'.offset({}}設置'#footer'位置, )' –

+1

你不需要'px';) – Archer

+0

@Archer:當你調用'css'時,jQuery會添加它們嗎? –