2011-08-20 64 views
4

比方說,我有一個未知頁面,其中一些內容相對定位,一些絕對定位。它有一些腳本,也可以有很多樣式。如何將所有內容(相對,絕對,...)向下移動?

是否有任何通用的解決方案如何使「每個」頁面內容向下移動50px(例如),以在頁面頂部創建空白空間?

僅使用JS/CSS。有效性比功能性的優先級低,你知道的。

+1

嘗試的50像素的頂緣'body'元件上.... –

+0

和內容將被放在旁邊''元件? –

+2

(將身體向下移動是不好的做法將身體保留爲邊距:0)您應該使用新的div標記Id it將其包含在頁面內容中,並通過top:50px;向下移動它。 – Undefined

回答

5

添加一個包裝div並把margin//padding就此。

你必須定位添加到包裝(absoluterelative,或fixed),任何事情,但static,使得它的孩子會定位到它。

JSFiddle Example


瀏覽器添加CSS到body標籤,這就是爲什麼我不建議修改時表現不同。

+0

以及這將如何解決絕對放置的內容? –

+0

元素對他們的父對象是絕對的......如果在'body'中有任何絕對放置的元素,他們現在將通過向該body添加一個「margin-top:50px」來將其絕對包含在'body-wrapper' div – vol7ron

+0

中,包裝,你會將頁面中的所有內容向下移動50px。請注意,這也適用於'絕對','相對'和'靜態'元素。 – vol7ron

2

我懷疑你想要做的是你現在在網站頂部看到的「警報」(比如stackoverflow)。我通常這樣做的方式是添加一個div,ID爲message作爲body標籤後面的第一個div。

如果你不能在html中這樣做,那麼只需使用JS在body標籤打開時將div#message作爲第一個div插入到DOM中。這樣,無論div使用什麼空間,其他所有內容都會被移除。

如果你有絕對定位的元素,你應該有應該所有你的網頁內容是一個div包裝應該有位置設置爲相對。這種方式時,包裝是向下移動,所有的內容將是。即使你不能修改html,我確信你的html中有這樣的包裝,只需使用CSS來改變它的位置屬性即可。

在jQuery中,您可以使用prepend添加div作爲body的第一個子項。

$('body').prepend("<div id='message'></div>"); 

在純javascript類似的信息(未測試):

var myDiv = document.createElement('div'); 
myDiv.setAttribute("id","message"); 
insertBefore(myDiv,document.body.firstChild); 
相關問題