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?

2voto

ingrid Punkte 555

In CSS: #clear_div{clear:both;}

Fügen Sie nach dem div-Tag des inneren div das folgende neue div ein

<div id="clear_div"></div>

http://www.w3schools.com/cssref/pr_class_clear.asp : für weitere Informationen

2voto

PongGod Punkte 779

Ich habe so ziemlich jeden der oben genannten Vorschläge ausprobiert, aber keiner hat funktioniert. Allerdings hat "display: table" den Trick für mich getan.

1voto

Ich bin in diesem auf ein Projekt selbst laufen - ich hatte eine Tabelle innerhalb eines div, die aus dem Boden des div verschüttet wurde. Keiner der Höhe Fixes, die ich versucht, funktionierte, aber ich fand eine seltsame Lösung für sie, und das ist ein Absatz am unteren Rand des div mit nur einem Punkt in ihm zu setzen. Dann Stil der "Farbe" des Textes, um die gleiche wie der Hintergrund des Containers sein. Funktioniert prima, und es ist kein Javascript erforderlich. Ein nicht umgebrochenes Leerzeichen wird nicht funktionieren - auch nicht ein transparentes Bild.

Offensichtlich musste es nur sehen, dass sich unter der Tabelle ein Inhalt befindet, um sich zu strecken und ihn zu enthalten. Ich frage mich, ob das auch bei anderen funktioniert.

Dies ist die Art von Dingen, die Designer dazu bringt, auf tabellenbasierte Layouts zurückzugreifen - die Zeit, die ich damit verbracht habe, diese Dinge herauszufinden und sie browserübergreifend kompatibel zu machen, macht mich verrückt.

1voto

Ahmed Aboelela Punkte 11

Ich habe das ausprobiert und es hat funktioniert

<div style=" position: absolute; direction: ltr;height:auto; min-height:100%">   </div>

0voto

Wenn Sie jQuery UI verwenden, gibt es bereits eine Klasse, die ganz hervorragend funktioniert Hinzufügen einer <div> am unteren Rand innerhalb des div, das Sie erweitern möchten, mit height:auto; dann fügen Sie einen Klassennamen ui-helper-clearfix oder verwenden Sie dieses Stil-Attribut und fügen Sie einfach wie unten:

<div style=" clear:both; overflow:hidden; height:1%; "></div>

Fügen Sie die jQuery UI-Klasse dem clear div hinzu, nicht dem div, das Sie erweitern möchten.

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