2009-10-02 95 views
19

我做與阿賈克斯的進度條和東西的東西...如何阻止div佔用空間?

基本上我有一個隱藏的div,上面寫着「加載」在裏面,它下面我和我的內容可見DIV。

當它加載時,會淡化內容div,使隱藏的div可見,並通過javascript /相對定位將其移動到內容中間。

它看起來相當不幸,但不幸的是,當div變得可見時,即使它相對定位,它也佔用一條線,所以我的內容向下移動。

您是否知道我可以如何阻止它在顯示時佔據空間?

編輯:有人刪除代碼似乎

加載DIV開始關閉顯示沒有,所以它不佔用空間,然後當它是可見,它開始佔用空間,即使它被定位相對。

我可以使用可見和不可見,但隨後會強制我的內容窗口一直處於關閉狀態。

它看起來像絕對定位的路要走。

我想要做的是結合絕對定位和相對定位。我試圖獲得內容div的絕對座標並設置其位置,但沒有成功。

編輯:我只是重新讀你的答案,你已經完成了。謝謝!

+1

它無關,與「asp.net」:你能不能刪除標籤? – enguerran 2009-10-02 11:24:24

回答

41

「你知道我怎樣才能阻止它在可見的時候佔據空間嗎?」

絕對要對它進行定位。

div#theParent { 
    position:relative; 
    height:200px; 
    width:640px; 
    top:50px; 
    left:50px; 
} 
div#theChild { 
    position:absolute; 
    height:100px; 
    width:400px; 
    top:50px; 
    left:120px; 
} 

<div id="theParent"> 
    <div id="theChild"> 
    <p>This div is absolutely positioned to a relatively-positioned parent.</p> 
    </div> 
</div> 
+2

爲什麼downvote。他問如何讓一個相對定位的物品在可見的時候不會移動兄弟姐妹。 – Sampson 2009-10-02 11:24:12

+4

+1 - 除非我誤解了這個問題,否則你是唯一回答他的問題的答案(這是關於如何阻止它在可見時移動的東西,而不是在看不見時如何阻止它佔據空間)。 – 2009-10-02 11:26:59

+0

如果你玩絕對位置,當然div不會移動......但即使問題以這種方式被問到,最好的做法是使用'display:none'而不是'visible:hidden'。這就是爲什麼我投票下來。 – enguerran 2009-10-02 11:33:36

5

當你想讓它隱形,使其真正與style="display:none"無形。有很多方法可以做到這一點...不知道你是如何設置這個設置的,或者你如何改變你的dom元素。提供更多的上下文(使用Ajax控件,自定義JavaScript,像jQuery等庫),我們可以給你一個更具體的解決方案。

1

你可以嘗試各種各樣的東西,比如。取決於你的代碼是如何構建的。因爲你沒有提供一個例子:)

display: none; 
height:0px 
line-height: 0px; 
font-size: 0px; 
3

你必須與顯示選項玩,而不是可見選項:

提示:即使不可見元素上佔用空間這一頁。使用「顯示」屬性來創建不佔用空間的不可見元素!

看到w3schools

[編輯]

閱讀w3fools,即使他們不收集任何誤會pr_class_visibility後,他們做一下pr_class_display:所以 never see w3schools

但你可以看到reference.sitepoint.com

如果隱藏框的後代框可見性設置爲可見,則其後代會顯示,而顯示設置爲none的元素的後代永遠不會生成它們自己的框。

0

我知道這已經回答了,但如果你使用的是引導嘗試:

class='hide' 

,而不是

class='hidden'