Das div in einem anderen div Bild und Code unten. Weil es Text und Bilder des übergeordneten Div gibt. Und rotes div wird das letzte Element des übergeordneten div sein.
<div style="width: 200px; height: 150px; border: 1px solid black;">
<div style="width: 100%; height: 50px; border: 1px solid red;">
</div>
</div>
Antworten:
Dies ist eine Möglichkeit
Da das innere Div jedoch absolut positioniert ist, müssen Sie sich immer um andere Inhalte im äußeren Div kümmern, die es überlappen (und Sie müssen immer feste Höhen festlegen).
Wenn Sie dies tun können, ist es besser, dieses innere Div zum letzten DOM-Objekt in Ihrem äußeren Div zu machen und es auf "clear: both" zu setzen.
quelle
Ein Flexbox-Weg.
HTML:
CSS:
Bearbeiten:
Quelle - Flexbox-Handbuch
Browserunterstützung für Flexbox - Caniuse
quelle
Machen Sie das äußere
position="relative"
und das innere Divposition="absolute"
und stellen Sie es einbottom="0"
.quelle
width=100%
auch.Hier ist ein weiterer reiner CSS-Trick, der einen Elementfluss nicht beeinflusst.
quelle
Möglicherweise möchten Sie keine absolute Positionierung, da dies den Reflow unterbricht. Unter bestimmten Umständen besteht eine bessere Lösung darin, das Großelternelement
display:table;
und das übergeordnete Element zu erstellendisplay:table-cell;vertical-align:bottom;
. Danach sollten Sie in der Lage sein, dendisplay:inline-block;
untergeordneten Elementen zu geben, und sie fließen automatisch zum unteren Rand des übergeordneten Elements.quelle
Hinweis: Dies ist keineswegs der bestmögliche Weg, dies zu tun!
Situation : Ich musste das gleiche tun, nur konnte ich keine zusätzlichen Divs hinzufügen, daher blieb ich bei dem, was ich hatte, und anstatt innerHTML zu entfernen und ein anderes über Javascript zu erstellen, fast wie 2 Renderings, die ich brauchte, um den Inhalt im zu haben unten (animierte Leiste).
Lösung: Angesichts der Müdigkeit, die ich zu der Zeit hatte, scheint es normal, überhaupt an eine solche Methode zu denken, aber ich wusste, dass ich ein übergeordnetes DOM-Element hatte, von dem aus die Höhe der Leiste begann.
Anstatt weiter mit dem Javascript herumzuspielen, habe ich eine ( NICHT IMMER GUTE IDEE ) CSS-Antwort verwendet! :) :)
Ja, das ist richtig. Anstatt das DOM zu positionieren, habe ich das übergeordnete Element in CSS auf den Kopf gestellt.
Für mein Szenario wird es funktionieren! Möglicherweise auch für andere! Keine Flamme! :) :)
quelle
So vermeiden Sie absolute Divs und Tabellen, wenn Sie die Größe der Eltern kennen:
CSS:
JsFiddle:
Beispiel
quelle
quelle