445 Stimmen

div's Höhe mit seinem Inhalt erweitern

Ich habe diese verschachtelten Divs und ich brauche den Hauptcontainer zu erweitern (in der Höhe), um die DIVs innerhalb unterzubringen

    <!-- 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 ist dies:

* {
    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;
}

Das Problem, das ich habe, ist, dass #main_content dehnt sich nicht aus, um alle inneren Divs unterzubringen, mit dem Ergebnis, dass sie sich immer wieder vom Hintergrund abheben.

Wie kann ich dieses Problem in Anbetracht des obigen Szenarios lösen?

6voto

onalbi Punkte 2315

Bevor Sie etwas tun, prüfen Sie die CSS-Regeln mit:

{ position:absolute }

Entfernen Sie sie, wenn sie vorhanden sind und nicht benötigt werden.

5voto

CesareoAguirre Punkte 1357

Sieht aus, als ob das funktioniert

html {
 width:100%;
 height:auto;
 min-height:100%
} 

Sie nimmt die Bildschirmgröße als Mindestgröße an, und wenn sich der Inhalt ausdehnt, wächst er.

5voto

Ray Punkte 21047

Fügen Sie eine Float-Eigenschaft zu der #main_content div - es wird sich dann ausdehnen, um seinen schwebenden Inhalt zu enthalten

4voto

Michelle Dimwaite Punkte 109

Haben Sie die traditionelle Methode ausprobiert? Geben Sie dem Hauptcontainer height:auto

#container{height:auto}

Ich habe dies verwendet und es hat bei mir meistens funktioniert.

3voto

Schwebende Elemente nehmen nicht den Platz innerhalb des übergeordneten Elements ein, wie der Name schon sagt, sie schweben! Also, wenn eine Höhe explizit nicht zu einem Element mit seinen Kind-Elemente schwebenden vorgesehen ist, dann wird das übergeordnete Element zu schrumpfen & scheinen nicht akzeptieren Dimensionen des Kind-Element, auch wenn seine gegeben overflow:hidden; seine Kinder erscheinen möglicherweise nicht auf dem Bildschirm. Es gibt mehrere Möglichkeiten, dieses Problem zu lösen:

  1. Fügen Sie ein weiteres Element unterhalb des schwebenden Elements mit clear:both; Eigentum, oder Verwendung clear:both; en :after des schwebenden Elements.

  2. Utilice display:inline-block; o flex-box anstelle von float .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X