2013-01-09 92 views
0

我一直在为此奋斗一段时间,而且我似乎找不到任何解决方案。 我有一个框架,一个机顶盒,一个左箱右边框和包含最后两个中间箱为什么我的DIV儿童的身高不如父母

我想这是框架减去机顶盒的高度的高度。这会导致框架被填满,只剩下一点也没有。

我现在的代码有什么问题,以及什么是实现这个目标的正确方法?

下面的代码:

<html> 
    <head> 
     <style type="text/css"> 
      #frame { 
       width: 800px; 
       min-height: 500px; 
       border: 1px solid black; 
      } 

      #top { 
       width: 800px; 
       height: 80px; 
       float: left; 
       background-color: #666; 
      } 

      #middle { 
       width: 800px; 
       height: 100%; 
       float: left; 
      } 

      #left { 
       width: 200px; 
       height: 100%; 
       float: left; 
       background-color: #B3B4BD; 
      } 

      #right { 
       width: 600px; 
       height: 100%; 
       float: left; 
       background-color: #99BC99; 
      } 
     </style> 
    </head> 
    <body> 
     <div id="frame"> 
      <div id="top">Top</div> 

      <div id="middle"> 
       <div id="left">Left</div> 
       <div id="right">Right</div> 
      </div> 
     </div> 
    </body> 
</html> 
+0

无需浮动“中间” - 它旁边没有任何东西。 –

回答

0

尝试使用比例,而不是确切像素。

 #frame { 
     width: 80%; 
     min-height: 500px; 
     border: 1px solid black; 
     margin-right:auto; 
     margin-left:auto; 

     } 

     #top { 
      width: 100%; 
      height: 80px; 
      float: left; 
      background-color: #666; 
     } 

     #middle { 
      width: 100%; 
      height: 100%; 
      float: left; 
     } 

     #left { 
      width: 33%; 
      height: 100%; 
      float: left; 
      background-color: #B3B4BD; 
     } 

     #right { 
      width: 66%; 
      height: 100%; 
      float: left; 
      background-color: #99BC99; 
     } 

jsFiddle

这是你的演示与更新的CSS截图: Screenshot of your demo with updated CSS

+0

是的,这样的结果与原始代码有相同的结果,就像你在边界上看到的那样,它仍然离开我的道歉 –

+0

。除非指定父项,否则无法指定子项元素的百分比高度。如果你确定你指定了父母的身高,你的孩子将填补其余的部分。 – Jason

2

不能指定一个100%的高度,除非你明确地设置了家长的高度。原因是父母通常会在身高方面进行扩张以适合其子女,并且您需要指定一个确切的身高,以便父母知道其身高及时到达其子女需要的高度。

也就是说,有很多方法可以达到类似的效果。例如,如果一个div通常比另一个高,那么您可以使用绝对定位将第二个div拉伸到相同的高度。或者,如果你真的绝望,那么你可以使用一张桌子。

+0

你能说出其中一些方法吗?我不能做一个工作示例只是 –

+0

@PatrickReck这似乎是堆栈溢出流行的问题。也许http://stackoverflow.com/questions/3050571/会给你一些想法。 – Neil

相关问题