Höhenberechnung durch Browser: Enthält Blöcke und untergeordnete Elemente

Habe dies in SO selbst aufgegriffen - die 'Höhenberechnung', die von Browsern durchgeführt wurde (wenn wir nicht explizit ein @ gesetzt habenheight aber wir haben ein @ gesetmin-height) Für einContaine das hatKinde (die die Höhe in Prozent in Bezug auf den Container haben):

Ohne eine Höhe einzustellen, stelle ichmin-height und es funktioniert nicht - beachte, dass der berechnete Wert für height der Wert ist, den ich für @ angegeben hamin-height. Die Kinder werden nicht 50% größer als ich - siehe unten:

    * {
          box-sizing: border-box;
        }
        .inline-container,
        .block-container,
        .float-container,
        .inline-block-container {
          border: 1px solid red;
          min-height: 100px;
        }
        .inline-container > * {
          border: 1px solid;
          height: 50%;
        }
        .block-container > * {
          border: 1px solid;
          height: 50%;
        }
        .float-container > * {
          float: left;
          border: 1px solid;
          height: 50%;
        }
        .float-container:after {
          clear: both;
          content: '';
          display: block;
        }
        .inline-block-container > * {
          display: inline-block;
          border: 1px solid;
          height: 50%;
        }
    <body>
          <div class="inline-container">
            <span>Inline 1</span>
            <span>Inline 2</span>
          </div>
          <div class="block-container">
            <div>Block 1</div>
            <div>Block 2</div>
          </div>
          <div class="float-container">
            <div>Float 1</div>
            <div>Float 2</div>
            <div>Float 3</div>
          </div>
          <div class="inline-block-container">
            <div>Inline block 1</div>
            <div>Inline block 2</div>
            <div>Inline block 3</div>
          </div>
        </body>

etzt setze ichheight: 0 Es klappt! Siehe folgendes Beispiel:

    * {
          box-sizing: border-box;
        }
        .inline-container,
        .block-container,
        .float-container,
        .inline-block-container {
          border: 1px solid red;
          min-height: 100px;
          height: 0;
        }
        .inline-container > * {
          border: 1px solid;
          height: 50%;
        }
        .block-container > * {
          border: 1px solid;
          height: 50%;
        }
        .float-container > * {
          float: left;
          border: 1px solid;
          height: 50%;
        }
        .float-container:after {
          clear: both;
          content: '';
          display: block;
        }
        .inline-block-container > * {
          display: inline-block;
          border: 1px solid;
          height: 50%;
        }
    <body>
          <div class="inline-container">
            <span>Inline 1</span>
            <span>Inline 2</span>
          </div>
          <div class="block-container">
            <div>Block 1</div>
            <div>Block 2</div>
          </div>
          <div class="float-container">
            <div>Float 1</div>
            <div>Float 2</div>
            <div>Float 3</div>
          </div>
          <div class="inline-block-container">
            <div>Inline block 1</div>
            <div>Inline block 2</div>
            <div>Inline block 3</div>
          </div>
        </body>

Frage

Also meine Frage ist - was passiert hier - ich bin wirklich überrascht! Warum respektieren die Kinder die berechnete Höhe des umschließenden Blocks nicht, wenn ich ihm eine minimale Höhe gebe? Könnt ihr das untersuchen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage