763 Stimmen

Wie Kind div zu zwingen, 100% der übergeordneten div's Höhe ohne Angabe der übergeordneten Höhe sein?

Ich habe eine Website mit der folgenden Struktur:

<div id="header"></div>

<div id="main">
  <div id="navigation"></div>
  <div id="content"></div>
</div>

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

Die Navigation befindet sich auf der linken Seite und das Inhalts-Div auf der rechten Seite. Die Informationen für das Inhalts-Div werden über PHP abgerufen, so dass sie jedes Mal anders sind.

Wie kann ich die Navigation vertikal skalieren, so dass ihre Höhe mit der Höhe des Inhalts-Divs übereinstimmt, egal welche Seite geladen wird?

2 Stimmen

Verwenden Sie display table auf parent und display table-cell auf child. Dadurch wird das Kind so lang wie das Elternteil. Siehe stackoverflow.com/q/22712489/3429430

18 Stimmen

Sie können einfach einstellen display: flex; align-items: stretch; für das div#main. Und nicht verwenden. height: 100% für div#content

35voto

Roman Kuntyi Punkte 337
#main {
    overflow: hidden;
}
#navigation, #content {
    margin-bottom: -1000px;
    padding-bottom: 1000px;
}

17voto

Rainning Punkte 1

Für Leser des Jahres 2021:

Versuchen Sie dies:

.parent {
  position: relative;

  display: flex;                 // And you will probably need this too.
  flex-direction: row;           // or column.
}

.child {
  position: absolute;
  top: 0;
  bottom: 0;

  align-self: center;            // And you will probably need this too.
}

Hier ist, woran ich arbeite:

17voto

Sergiu Punkte 1161
#main {
   display: table;
} 
#navigation, #content {
   display: table-cell;
}

Blick auf dieses Beispiel .

16voto

flavius Punkte 215

Mit jQuery:

$(function() {
    function unifyHeights() {
        var maxHeight = 0;
        $('#container').children('#navigation, #content').each(function() {
            var height = $(this).outerHeight();
            // alert(height);
            if ( height > maxHeight ) {
                maxHeight = height;
            }
        });
        $('#navigation, #content').css('height', maxHeight);
    }
    unifyHeights();
});

16voto

Lajos Mészáros Punkte 3501

height : <percent> funktioniert nur, wenn Sie alle übergeordneten Knoten mit der angegebenen prozentualen Höhe mit einer festen Höhe in Pixeln, ems, etc. auf oberster Ebene haben. Auf diese Weise wird die Höhe bis zu Ihrem Element kaskadiert.

Sie können 100% für html- und body-Elemente angeben, wie @Travis bereits erwähnt hat, um die Seitenhöhe bis zu den Knoten kaskadieren zu lassen.

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