Padding-bottom/top in flexbox-layout

Ich habe eine flexbox-layout enthält zwei Elemente. Einer von Ihnen verwendet padding-bottom :

CSS:

#flexBox {
  border: 1px solid red;
  width: 50%;
  margin: 0 auto;
  padding: 1em;
  display: flex;
  flex-direction: column;
}
#text {
  border: 1px solid green;
  padding: .5em;
}
#padding {
  margin: 1em 0;
  border: 1px solid blue;
  padding-bottom: 56.25%; /* intrinsic aspect ratio */
  height: 0;
}

HTML:

<div id='flexBox'>
  <div id='padding'></div>
  <div id='text'>Some text</div>
</div>

Blauen element behält das Seitenverhältnis entsprechend seiner Breite, wenn die Seite geändert wird.
Dies funktioniert mit Chrome und IE und sieht wie folgt aus :

Padding-bottom/top in flexbox-layout

Jedoch in Firefox und Edge, bekomme ich die folgende (es ignoriert die Polsterung auf der blauen box, die ist, was behält das Seitenverhältnis):

Padding-bottom/top in flexbox-layout

Ich bin zu neu, um flexbox, um wirklich zu verstehen, wenn dies sollte oder nicht funktionieren sollte. Der springende Punkt bei der flexbox ist, um die Größe der Dinge, aber ich bin mir nicht sicher, warum es ist, ignorieren die intrinsische Polsterung und absolute Größen auf das Blaue element.

Ich denke, schließlich bin ich auch nicht sicher, ob Firefox oder Chrome tut das richtige! Kann jeder Firefox-flexbox-Experten helfen?

  • Die obigen Erklärungen waren sehr hilfreich. Für weitere Kontext und Erklärung, ich empfehle das Smashing Magazine ' s "Making Embedded Content Arbeiten In Einem Responsive iFrame" (smashingmagazine.com/2014/02/...). Dieser Artikel hat einen klaren, präzisen Kontext, warum das padding und div-wrapper-Lösung funktioniert.
InformationsquelleAutor Simon_Weaver | 2014-05-18
Schreibe einen Kommentar