margin-top tylko wtedy, gdy element flex jest opakowany


88

Mam pojemnik elastyczny z dwoma elementami elastycznymi. Chcę ustawić górny margines na drugim, ale tylko wtedy, gdy jest zawinięty, a nie na pierwszej linii elastycznej.

Jeśli to możliwe, chcę unikać zapytań o media.

Pomyślałem, że rozwiązaniem może być dół marginesu na pierwszym elemencie. Jednak dodaje miejsca na dole, gdy elementy nie są zawinięte, więc ten sam problem.

To jest mój kod:

.container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
}
.item-big {
  background: blue;
  width: 300px;
}
.item-small {
  background: red;
  margin-top: 30px;
}
<div class="container">
  <div class="item-big">
    FIRST BIG ELEM
  </div>
  <div class="item-small">
    SECOND SMALL ELEM
  </div>
</div>


1
Pytania szukające pomocy w debugowaniu („dlaczego ten kod nie działa?”) Muszą zawierać żądane zachowanie, określony problem lub błąd oraz najkrótszy kod niezbędny do odtworzenia go w samym pytaniu. Nie nadużywaj bloków kodu, aby obejść ten wymóg .
Paulie_D

Problem polega na tym, że w tym przypadku nie musiałem wyjaśniać więcej kodu, więc jest to problem StackOverflow, jeśli wymagany jest kod blokowy.
Manuel Di Iorio

1
Problemem jest przydatność dla przyszłych użytkowników SO. Jeśli twój link JSfiddle zniknął, twój post jest zasadniczo bezużyteczny. Dlatego SO prosi o kod ... najlepiej we fragmentach kodu dostępnych podczas tworzenia pytania.
Paulie_D

Ok, zrozumiałem, edytuję pytanie tak, aby było zgodne z regulaminem;)
Manuel Di Iorio

Odpowiedzi:


174

Możesz dodać trochę margin-topdo obu elementów elastycznych i ujemną margin-toptę samą kwotę do pojemnika elastycznego.

W ten sposób ujemny margines pojemnika elastycznego zneutralizuje margines elementów elastycznych w pierwszej linii, ale nie margines elementów zawiniętych w inne wiersze.

.container {
  margin-top: -30px;
}
.item-big, .item-small {
  margin-top: 30px;
}


114
Och, CSS, dlaczego mi to
robisz

3
Doskonała odpowiedź
pilau

3
To nie działa, gdy kontener ma kolor tła lub obramowanie
Frank van Wijk
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.