Lassen Sie das äußere div automatisch die gleiche Höhe wie sein schwebender Inhalt haben

Lesezeit: 4 Minuten

Lassen Sie das ausere div automatisch die gleiche Hohe wie
Jase Whatson

Ich will das Äußere div, das schwarz ist, um es einzuwickeln divschwebt darin. möchte ich nicht verwenden style="height: 200px in dem div mit dem outerdiv id, da ich möchte, dass es automatisch die Höhe seines Inhalts hat (z. B. die schwebende divS).

<div id="outerdiv' style="border: 1px solid black;background-color: black;">
<div style="width=300px;border: red 1px dashed;float: left;">
    <p>xxxxxxxxxxxxxxxxxxxxxxxxxxxxx</p>
</div>

<div style="width=300px;border: red 1px dashed;float: right;">
    <p>zzzzzzzzzzzzzzzzzzzzzzzzzzzzz</p>
</div>

Wie erreicht man das?

Lassen Sie das ausere div automatisch die gleiche Hohe wie
Alex

Sie können die einstellen outerdiv‘s CSS dazu

#outerdiv {
    overflow: hidden; /* make sure this doesn't cause unexpected behaviour */
}

Sie können dies auch tun, indem Sie am Ende ein Element mit hinzufügen clear: both. Dies kann normal, mit JS (keine gute Lösung) oder mit hinzugefügt werden :after CSS-Pseudoelement (in älteren IEs nicht weit verbreitet).

Das Problem ist, dass Container nicht natürlich erweitert werden, um schwebende Kinder einzuschließen. Seien Sie gewarnt, wenn Sie das erste Beispiel verwenden, wenn Sie untergeordnete Elemente außerhalb des übergeordneten Elements haben, werden diese ausgeblendet. Sie können auch „auto“ als Eigenschaftswert verwenden, aber dies wird Bildlaufleisten aufrufen, wenn irgendein Element außerhalb erscheint.

Sie können auch versuchen, den übergeordneten Container zu schweben, aber je nach Ihrem Design kann dies unmöglich/schwierig sein.

  • Ich wünschte, ich hätte die Logik des Überlaufs verstanden: in diesem Fall versteckte Werke.

    – Meisterschule

    30. August 13 um 14:28 Uhr

  • Ja, ich hatte gehofft, dass nicht nur ich das für kontraintuitiv hielt. Alex?

    – normales Mikrofon

    30. August 13 um 14:49 Uhr

  • @masteroleary @regularmike HTML/CSS war noch nie eine gute UI-Technologie, daher sind kontraintuitive Dinge darin durchaus üblich 🙂

    – Juri Nakonechny

    8. November 13 um 17:21 Uhr

  • @masteroleary Mir ist klar, dass dies ein alter Thread ist, aber ich habe kürzlich versucht, eine ähnliche Frage unter stackoverflow.com/questions/21041297#21041625 zu beantworten – ich hoffe, es hilft

    – xec

    11. Januar 14 um 23:34 Uhr

  • +1 für die float Lösung. Funktioniert sehr gut mit den anderen Fehlern, besonders wenn sie mit Twitter Bootstrap gekoppelt sind.

    – Fizzix

    30. April 14 um 23:31 Uhr

1643653327 728 Lassen Sie das ausere div automatisch die gleiche Hohe wie
Lykan

Erstens empfehle ich dringend, dass Sie Ihr CSS-Styling in einer externen CSS-Datei erstellen, anstatt es inline zu tun. Es ist viel einfacher zu warten und kann mithilfe von Klassen besser wiederverwendet werden.

Wenn Sie Alex ‘Antwort (& Garrets Clearfix) “Hinzufügen eines Elements am Ende mit clear: both” abarbeiten, können Sie es so machen:

    <div id='outerdiv' style="border: 1px solid black; background-color: black;">
        <div style="width: 300px; border: red 1px dashed; float: left;">
            <p>xxxxxxxxxxxxxxxxxxxxxxxxxxxxx</p>
        </div>

        <div style="width: 300px; border: red 1px dashed; float: right;">
            <p>zzzzzzzzzzzzzzzzzzzzzzzzzzzzz</p>
        </div>
        <div style="clear:both;"></div>
    </div>

Das funktioniert (aber wie Sie sehen können, ist Inline-CSS nicht so schön).

  • Warum wurde ich herabgestuft? Es funktioniert, und ich habe zu Recht zugegeben, dass es keine schöne Lösung war.

    – Lykan

    30. April 09 um 0:58 Uhr

  • Ich bin mir nicht sicher, ich hätte +1 gegeben, um Sie zumindest auf 0 zurückzusetzen. Vielleicht wurden Sie abgelehnt, weil Sie sein falsches CSS nicht korrigiert haben … dh die Verwendung von Gleichheitszeichen zum Festlegen einer CSS-Eigenschaft ist falsch.

    – Alex

    30. April 09 um 1:05 Uhr

  • Meinetwegen. Ich schätze die +1 alex. Ich dachte, meine Aussage sei fair.

    – Lykan

    30. April 09 um 1:09 Uhr

  • Diese Lösung ist besser IMO. Ich hätte diese Antwort akzeptiert, wenn es meine Frage gewesen wäre.

    – ksg91

    20. September 12 um 11:25 Uhr

1643653327 947 Lassen Sie das ausere div automatisch die gleiche Hohe wie
DarkWulf

Vielleicht möchten Sie selbstschließende Schwimmer ausprobieren, wie auf beschrieben http://www.sitepoint.com/simple-clearing-of-floats/

Also vielleicht beides versuchen overflow: auto (funktioniert normalerweise) oder overflow: hidden, wie Alex sagte.

  • versteckt funktioniert, aber du hast recht, auto funktioniert etwas besser. Danke.

    – Matthäus Setter

    1. Mai ’12 um 10:47 Uhr

1643653327 557 Lassen Sie das ausere div automatisch die gleiche Hohe wie
Nande

Ich weiß, manche Leute werden mich hassen, aber ich habe es gefunden display:table-cell in diesen Fällen zu helfen.

Es ist wirklich sauberer.

Zunächst einmal verwenden Sie nicht width=300px das ist eine Attributeinstellung für das Tag, nicht CSS, verwenden width: 300px; stattdessen.

Ich würde vorschlagen, die anzuwenden clearfix Technik auf der #outerdiv. Klarfix ist eine allgemeine Lösung zum Löschen von 2 Floating-Divs, sodass das übergeordnete Div erweitert wird, um die 2 Floating-Divs aufzunehmen.

<div id='outerdiv' class="clearfix" style="width:600px; background-color: black;">
    <div style="width:300px; float: left;">
        <p>xxxxxxxxxxxxxxxxxxxxxxxxxxxxx</p>
    </div>

    <div style="width:300px; float: left;">
        <p>zzzzzzzzzzzzzzzzzzzzzzzzzzzzz</p>
    </div>
</div>

Hier ist ein Beispiel Ihrer Situation und was Clearfix tut, um sie zu lösen.

1643653328 162 Lassen Sie das ausere div automatisch die gleiche Hohe wie
Cody Guldner

Verwenden Sie jQuery:

Höhe des übergeordneten Elements = offsetHeight des untergeordneten Elements festlegen.

$(document).ready(function() {
    $(parent).css("height", $(child).attr("offsetHeight"));
}

1643653328 437 Lassen Sie das ausere div automatisch die gleiche Hohe wie
Josh Crozier

Benutzen clear: both;

Ich habe über eine Woche damit verbracht, das herauszufinden!

.

717170cookie-checkLassen Sie das äußere div automatisch die gleiche Höhe wie sein schwebender Inhalt haben

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy