margin-top лише тоді, коли елемент flex є загорнутим


89

У мене є гнучкий контейнер з двома гнучкими предметами. Я хочу встановити верхнє поле для другого, але лише тоді, коли воно загорнуте, а не на першому гнучкому рядку.

Якщо можливо, я хочу уникати використання медіа-запитів.

Я думав, що margin-bottom на першому елементі може бути рішенням. Однак це додає місця внизу, коли елементи не загорнуті, тому та сама проблема.

Це мій код:

.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
Питання, що вимагають допомоги у налагодженні ("чому цей код не працює?"), Повинні містити бажану поведінку, конкретну проблему чи помилку та найкоротший код, необхідний для відтворення цього у самому питанні. Будь ласка, не зловживайте блоками коду, щоб обійти цю вимогу .
Paulie_D

Проблема полягає в тому, що в цьому випадку мені не потрібно було пояснювати більше коду, тому проблема StackOverflow, якщо потрібен блоковий код.
Мануель Ді Іоріо

1
Питання полягає в корисності для майбутніх користувачів SO. Якщо ваше посилання JSfiddle пішло, тоді ваш пост по суті марний. Ось чому SO запитує код .... в ідеалі в фрагментах коду, доступних вам під час створення запитання.
Paulie_D

Добре, я зрозумів, я редагую питання, щоб відповідати правилам;)
Мануель Ді Іоріо

Відповіді:


174

Ви можете додати деякі margin-topелементи як до елементів гнучкого, так і до мінуса margin-topтакої ж кількості до контейнера гнучких елементів .

Таким чином, негативне поле флекс-контейнера нейтралізує поле флекс-елементів у першому рядку, але не поле елементів, які перенесено в інші рядки.

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


115
О CSS, навіщо ти мені
робиш

3
Відмінна відповідь
плов

3
Це не спрацьовує, коли контейнер має колір фону або облямівку
Френк ван Війк,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.