2011-03-13 52 views
2

假設你有這樣的:當某個div在物理上位於其他位置時,將div呈現在某處?

<div>Area 1</div> 
<div style="clear:both;">Area 2</div> 
    ... more arbitrary stuff 
<div style="clear:both;">Area 3</div> 

有沒有什麼辦法可以使這個呈現如下圖所示,實際上並沒有改變元素的順序?

Area 1 
Area 3 
Area 2 
... more abitrary stuff 

是的它沒有任何意義,但原因是(當然)asp.net。我想創建一個內嵌的文件上傳表單,而不是使用iFrame。因此需要創建一個新的form,它不在單個asp.net表單中。由於不可能嵌套表單,因此上載表單必須物理存在於其他表單之外的頁面上。所以我試圖弄清楚是否有任何方法可以使顯示在技術上屬於主要形式的一部分。

我的工作解決方案是使用第二種形式的模式對話框。這工作得很好,但如果可能的話,我希望上傳表單與頁面的其餘部分內聯,而不是在模態對話框中。

我可以想象使用絕對位置來移動物體,但我無法想象如何讓其他元素無需大量的javascript就可以適應第三個div所消耗的空間。

回答

0

一般來說,我一直在試圖避免從ASP.net單服務器端表單,除非我真的需要它,如果這是一個選項。

您能否創建一個與您的表單大小相同的「虛擬」元素,以便瀏覽器正確定位其他所有內容,然後絕對將您的表單放置在虛擬元素上?

+0

在*一般*我試圖完全離開webforms :)但我堅持這個項目,它會太複雜,以改變網站架構,所以它不是一個單一的形式主頁面。我可以做這樣的事情,但根據瀏覽器功能的不同,大小會有所不同,所以如果無法輕鬆調整大小,那麼iframe幾乎是一回事。我認爲這是可能的,但可能是一個巨大的努力,不值得。 – 2011-03-13 18:07:41

+0

不知道我真的會這樣做,但我認爲這是答案。 – 2011-03-13 18:54:09

0

我不認爲你可以用上面列出的內聯元素來實現這一點。

什麼可能 do是在主窗體中創建一個空元素,它是一個塊元素,它具有與文件上傳元素完全相同的尺寸。

然後在您的文件上傳元素上使用絕對定位,並將其動態定位到頁面加載上,以將其定位在頁面上主窗體中的塊元素所在的位置。

這樣你就可以從佔位符中獲得定位。

我不確定是否有更好的方法來實現這一點,但我相信這種技術會起作用。