Flex-box ignoriert eingewickelt Kinder-Marge (Marge Zusammenbruch)

Angesichts des folgenden HTML-Code:

<div class="outer">
  <div>
    <div class="inner">A</div>
  </div>
</div>
<div class="outer">
  <div class="inner">B</div>
</div>

und die folgenden CSS - (prefix-free):

.outer {
  display: box;
  box-orient: vertical;

  height: 100px;
  width: 100px;

  background: red;
  margin: 10px;
}

.inner {
  height:     50px;
  margin-top: 10px;
  background: green;
}

Flex-box ignoriert eingewickelt Kinder-Marge (Marge Zusammenbruch)

Hier ist ein CodePen.

A verpackt in einem <div> so ist es Marge wird ignoriert.

Q: Wie kann ich erreichen B's Verhalten für A (margin) mit dem flex-box-Modell?

Hinweis: Die div-Wrapper kann gehen mehrere Ebenen tief

Ausrichtung: neueste Chrome/Safari/iOS

Danken Ihnen sehr für Ihre Hilfe!

Edit: Dank @JoséCabo ich kam mit dieser:

.outer {
  display: flex;
  flex-direction: column;

  height: 100px;
  width: 100px;

  background: red;
  margin: 10px;
}

.inner {
  height:     50px;
  margin-top: 10px;
  background: green;
}

CodePen

Chrome:
Flex-box ignoriert eingewickelt Kinder-Marge (Marge Zusammenbruch)

Safari:
Flex-box ignoriert eingewickelt Kinder-Marge (Marge Zusammenbruch)

Leider es funktioniert nicht in Safari wie erwähnt von @cimmanon, so brauche ich noch etwas Hilfe.

  • Wussten Sie, dass box-API ist veraltet? Sie haben die Verwendung von display: flex; api statt.
  • Das ist das Ergebnis wollen Sie bekommen? Sorry, aber ich verstehe dich nicht.
  • Die Eigenschaften, die verwendet werden sollte, hängt stark von dem browser, die Sie sind targeting. Safari, zum Beispiel, folgt man der älteren specs.
  • das zweite Ergebnis (B) ist die gewünschte ein, aber es sollte funktionieren mit diesen div-Wrapper zwischen .outer und .inner wie in (A). Danke!!!
Schreibe einen Kommentar