margin-top sadece flex öğe sarıldığında


93

İki esnek ürün içeren bir esnek kabım var. İkinciye bir kenar boşluğu ayarlamak istiyorum, ancak yalnızca sarıldığında ve ilk esnek çizgide değil.

Mümkünse medya sorgularını kullanmaktan kaçınmak istiyorum.

İlk elemandaki marj-alt bir çözüm olabilir diye düşündüm. Bununla birlikte, elemanlar sarılmadığında altta boşluk ekler, bu yüzden aynı sorun.

Bu benim kodum:

.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
Hata ayıklama yardımı arayan sorular ("bu kod neden çalışmıyor?") İstenen davranışı, belirli bir sorunu veya hatayı ve sorunun kendisinde yeniden üretmek için gereken en kısa kodu içermelidir . Bu gereksinimi aşmak için lütfen kod bloklarını kötüye kullanmayın .
Paulie_D

Sorun şu ki, bu durumda daha fazla kodla açıklamama gerek kalmadı, bu yüzden bir blok kodu gerekiyorsa bu bir StackOverflow sorunudur.
Manuel Di Iorio

1
Sorun, gelecekteki SO kullanıcıları için yararlılıktır . JSfiddle bağlantınız kaybolduysa, gönderiniz aslında işe yaramaz. Bu nedenle SO, kodu sorar .... ideal olarak soruyu oluşturduğunuzda kullanabileceğiniz kod parçacıklarında.
Paulie_D

Tamam, anladım, soruyu kurallara uyacak şekilde düzenliyorum;)
Manuel Di Iorio

Yanıtlar:


181

Her margin-topiki esnek öğeye bir margin-topmiktar ekleyebilir ve aynı miktarda bir negatifi esnek kapsayıcıya ekleyebilirsiniz.

Bu şekilde, esnek kabın negatif kenar boşluğu, ilk satırdaki esnek öğelerin kenar boşluğunu etkisiz hale getirecek, ancak diğer satırlara sarılmış öğelerin marjını etkisiz hale getirecektir.

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


121
Oh CSS, neden bana dis yapıyorsun
Sanderfish

4
Mükemmel cevap
pilau

3
Kap bir arka plan rengini veya sınır olduğunda bu çalışmıyor
Frank van Wijk

@FrankvanWijk Kenar boşluğu düzeltmeniz için iç içe geçmiş şeffaf bir div ve görsel öğeler için üst öğe kullanın.
kalıntı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.