2013-10-28 33 views
0

我正在從MySQL數據庫加載動態創建的網頁。定位div相對於body而不是父div

我像往常一樣設置頁面,但是當我到達頁面的內容部分時,我運行一個while循環並根據數據庫中存儲的內容加載頁面元素。

這對我來說很好,除非我加載一個根據身體而不是內容定位的條紋,並且具有100%的頁面寬度而不是100%的內容。

有沒有一種方法來定位條紋元素與jQuery或JavaScript,所以他們是相對於身體。

在db每個元件具有用於頂部positons和左,和具有高度和寬度,以及許多更多的東西等的邊界等

予加載一個div內的元件和設置的CSS像內聯所以

<div id="shape" style="position:absolute;top:<? echo $row['box_top']; ?>px;left:<? echo $row['box_left']; ?>px;height:<? echo $row['box_height']; ?>px;width:100%;z-index:<? echo $row['zindex']; ?>;border-top-width:<? echo $row['border_width']; ?>px;border-bottom-width:<? echo $row['border_width']; ?>px; border-style:<? echo $row['border_style']; ?>;padding:<? echo $row['padding']; ?>; opacity:<? echo $row['image_opacity']; ?>;filter:alpha(opacity=<? echo $ieopacity; ?>)"><? echo $row['content']; ?></div> 

有什麼想法嗎?

+2

每個元素都是相對於它最接近的'親屬'父親定位的。如果你需要一些相對於''的位置,它就需要成爲那個元素的直接子元素。你可以使用javascript'僞造'這個,但更好的解決方案是正確地組織你的HTML。 –

+0

關於如何在JS中'僞造'這個任何想法? –

回答

7

可以使用position: fixed;即可。

+0

我們有一個贏家。感謝這一點,當你知道如何時很容易:-) –

0

使用以下。

body{ 
    position:relative; 
} 

這將使所有絕對定位在身體內的元素相對定位到身體。

+0

不完全。如果有一個也是「位置:相對的」的子元素,那麼元素所擁有的任何子元素都將相對於該元素進行定位,而不是身體。 –

+0

約定@RoryMcCrossan,但正如我所提到的,只有絕對定位的元素應該相對於身體定位,如果它們位於身體標記之內(如果身體被設置爲相對位置的話)。 – Nitesh

3

聽起來像你的問題是,元素嵌套在內容負載的中間?

如果是這樣,您可以使用JavaScript將元素從DOM中取出,然後再將其作爲身體的直接子元素插入。

jQuery(document).ready(function(){ 
    $("div#shape").prependTo($("body")); 
}); 
+0

這是完全正確的,我如何使用JS來做到這一點? –

+0

添加了一個簡單的代碼示例。 –

+0

正是我在搜索 –

2

使用

body { 
     position:relative; 
} 

,使元素,它必須是絕對定位,直接 孩子身體

相關問題