2013-04-09 126 views
0

当我重新调整浏览器大小时,位置设置为绝对的元素不会根据其他元素发生更改。如果我把绝对div放在相对的位置,那么黑盒就不会显示出来。浏览器调整大小的位置元素绝对位移

<div id="outer"></div> 
<div id="blackbox"></div> 
<div class="form"></div> 

#outer{ 
    width:1250px; 
    height:auto; 
    margin:auto; 
    position:relative; 
} 
#blackbox{ 
    width:100%; 
    height:100%; 
    background:#000; 
    opacity:0.5; 
    position:absolute; 
    z-index:10; 
    left:0; 
    top:0; 
} 
.form{ 
    width:500px; 
    height:350px; 
    z-index:20; 
    background:#FFF; 
    position:absolute; 
    top:100; 
    left:400; 
} 

回答

1

习惯了这种

<div id="outer"> 
<div class="blackbox"></div> 
<div class="form"></div> 

</div> 

定义到父DIVposition relative孩子DIVposition absolute

Live Demo

More about Position

+0

内,但是当我做到这一点唯一形式被示出,它不列入显示that blackbox – 2013-04-09 08:48:43

0

您的CSS一个错字。变化从#blackbox.blackbox

1

绝对和相对定位是相对于

绝对块相对于它们的“含块”被置于“含块”。他们为他们的孩子定义了一个新的“包含区块”。

相对块相对于它们的流入位置放置。他们还为他们的孩子定义了一个新的“包含区块”。

因此,当您将绝对块X放置在相对块Y中时,您会说“将Y放入页面流中,将它移动一点,然后将X固定在Y的新位置”。

查看代码 - 您已将outer的高度设置为autoblackbox的高度为100%。所以父母的身高是基于孩子的身高,而孩子的身高是基于父母的身高!所以他们崩溃到0px。这就是为什么你没有看到blackboxTry #outer {height: 1250px;} to see things...

希望有助于,如果没有,然后阅读规范 - 这总是所有这些问题的最终答案(这是我如何学习CSS)!

http://www.w3.org/TR/CSS2/visuren.html

+0

Nice expalaination – Sami 2013-04-09 09:12:17

+0

thanks很多..问题解决.. :) – 2013-04-09 12:00:51

0
<div id="outer"> 
<div class="blackbox"></div> 
<div class="form"></div> 
</div> 

#blackbox -> wrong 

使用.blackbox {}

还记得,绝对定位的元素必须始终是相对定位的元素

+0

在这里,我错误地写了class =“blackbox”,在原来的代码中我使用了id =“blackbox”,但是pro瑕疵是,当我把它放在相对的一个里面时,黑盒不显示 – 2013-04-10 11:23:36

相关问题