Biorąc pod uwagę następujące HTML:Flex-box ignoruje owinięty zabaw (margines upadek)
<div class="outer">
<div>
<div class="inner">A</div>
</div>
</div>
<div class="outer">
<div class="inner">B</div>
</div>
oraz następujące CSS (prefix darmo):
.outer {
display: box;
box-orient: vertical;
height: 100px;
width: 100px;
background: red;
margin: 10px;
}
.inner {
height: 50px;
margin-top: 10px;
background: green;
}
Oto CodePen.
A
jest zawinięty w <div>
, więc margines zostanie zignorowany.
P: Jak mogę uzyskać zachowanie B
dla A
(margines) w modelu flex box?
Uwaga: div owijarki może przejść wiele poziomów głębokie
Kierowanie: najnowszy Chrome/Safari/iOS
Dziękuję bardzo za pomoc!
Edit: Dzięki @ JoséCabo wymyśliłem to:
.outer {
display: flex;
flex-direction: column;
height: 100px;
width: 100px;
background: red;
margin: 10px;
}
.inner {
height: 50px;
margin-top: 10px;
background: green;
}
Chrome:
Safari:
Niestety to nie działa w Safari jak wspomniano przez @cimmanon, więc nadal potrzebuję go lp.
Czy wiesz, że skrzynka API jest przestarzała? Musisz użyć wyświetlacza: flex; zamiast tego api. –
Jaki jest wynik, który chcesz uzyskać? Przepraszam, ale cię nie rozumiem. –
@ JoséCabo Właściwości, które powinny być używane * znacznie *, zależą od tego, która przeglądarka jest kierowana. Safari, na przykład, podąża za jedną ze starszych specyfikacji. – cimmanon