在某个地方渲染一个div inline,当它在其他地方时?

时间:2011-03-13 17:58:42

标签: javascript asp.net css

假设你有这个:

<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。因此需要创建一个不在单个asp.net表单之外的新form。由于无法嵌套表单,因此上载表单必须实际存在于另一个表单之外的页面上。所以我试图弄清楚是否有任何方法可以在技术上属于主要形式的区域内进行显示

我的工作解决方案是使用第二种形式的模态对话框。这样可以正常工作,但是如果可能的话,我希望上传表单与页面的其余部分内联,而不是在模式对话框中。

我可以想象使用绝对位置来移动物体,但是我无法想象如何在没有大量javascript的情况下使其他元素适应第3 div所消耗的空间。

2 个答案:

答案 0 :(得分:0)

总的来说,我一直试图避免使用ASP.net中的单一服务器端表单,除非我真的需要它,如果这是一个选项。

你能否创建一个与表单大小相同的“虚拟”元素,这样浏览器就能正确找到其他所有元素,然后你绝对将表单放在虚拟元素上?

答案 1 :(得分:0)

我不认为你可以使用内联元素实现这一点,因为你已经在上面列出了它。

可以做的是在主窗体中创建一个空元素,这是一个与您的文件上传元素具有完全相同尺寸的块元素。

然后在文件上传元素上使用绝对定位,并在页面加载时动态定位,以准确定位主页面中的块元素在页面上的位置。

通过这种方式,您可以从占位符获得定位。

我不确定是否有更好的方法来实现这一目标,但我确信这种技术可行。