我有这些嵌套的div,我需要主容器扩展(在高度),以适应内部的div

    <!-- head -->
    ...
    <!-- /head -->

    <body class="main">
      <div id="container">
        <div id="header">
          <!--series of divs in here, graphic banner etc. -->
        </div>

    <div id="main_content"> <!-- this DIV _should_ stretch to accommodate inner divs -->
      <div id="items_list" class="items_list ui-sortable">
        <div id="item_35" class="item_details">
        </div>
        <div id="item_36" class="item_details">
        </div>        
        <div id="item_37" class="item_details">
        </div>
        <!-- this list of DIVs "item_xx" goes on for a while
             each one representing a photo with name, caption etcetc -->
      </div>
    </div>
    <br class="clear"/>

    <div id="footer">
    </div>
  </body>
</html>

CSS是这样的:

* {
    padding: 0;
    margin: 0;
}

.main {
    font: 100% Verdana, Arial, Helvetica, sans-serif;
    background: #4c5462;
    margin: 0; 
    padding: 0;
    text-align: center; 
    color: #000000;
}
.main #container {
    height: auto;
    width: 46em;
    background: #4c5462;
    margin: 0 auto; 
    border: 0px solid #000000;
    text-align: left;       
}

.main #main_content {
    padding: 5px;
    margin: 0px;
}
#items_list {
    width: 400px;
    float: left;
}

.items_list {
    width: 400px;
    float: left;
}
.item_details {
    margin-top: 3px;
    margin-bottom: 3px;
    padding: 3px;
    float: left;
    border-bottom: 0.5px solid blue;
}

我的问题是,#main_content没有拉伸以适应所有的内部div,其结果是它们一直在与背景相反。

考虑到上述情况,我该如何解决这个问题?


当前回答

我尝试了上面列出的每一条建议,但没有一条奏效。然而,“display: table”对我来说很管用。

其他回答

你可以使用CSS网格布局。目前支持范围相当广:在caniuse上检查它。

下面是jsfiddle的示例。还有大量文本的例子。

HTML代码:

<div class="container">
  <div class="header">
   Header
  </div>
  <div class="content">
   Content
  </div>
  <div class="footer">
   Footer
  </div>
</div>

CSS代码:

html, body {
  width: 100%;
  height: 100%;
  margin: 0;
}

.container {
  width: 100%;
  height: 100%;

  display: grid;
  grid-template-rows: 100px auto 150px;
  grid-template-columns: auto;
}
// style stuff

我会用

height: auto;

是的,我知道我来晚了一点,但我想这可能会对别人有帮助,就像它在这里对我有帮助一样。

向#main_content div添加一个float属性——它将展开以包含它的浮动内容

不需要使用大量的CSS,只需使用bootstrap,然后使用:

class="container"

用于需要填充的div。

你可以从这里得到bootstrap

增加了显示:内联到div和自动增长(不是滚动的东西)时,高度内容变得更大,然后设置div高度200px