2009-10-02 177 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' 
相关问题