Flexbox - пробел между выпуском с последней строкой, не выравнивающейся непосредственно над указанными выше элементами [duplicate]

Чтобы решить эту проблему, установите значение для apc.shm_size как целое. Найдите файл apc.ini (в моем файле файла apc.ini в файле /etc/php5/conf.d/apc.ini) и установите: apc.shm_size = 1000

10
задан Paolo Forgia 17 September 2017 в 14:24
поделиться

3 ответа

К сожалению, в текущей итерации flexbox (Уровень 1) нет чистого пути решения проблемы выравнивания последней строки. Это общая проблема.

Было бы полезно иметь свойство flex по строкам:

  • last-row
  • last-column
  • only-child-in-a-row
  • alone-in-a-column

Эта проблема является высокоприоритетной для Flexbox Level 2:

Хотя такого поведения в flexbox трудно достичь, в CSS Grid Layout легко и просто:

В случае, если сетка не является опцией, вот список похожих вопросов, содержащих различные флексографские хаки:

19
ответ дан Michael_B 15 August 2018 в 17:29
поделиться
  • 1
    Этот ответ имеет ту же проблему, что и книги в эти дни: слишком много информации = & gt; никто не читает. Было бы неплохо иметь TL, DR; раздел (быстрое исправление). – Andrei Gheorghiu 28 April 2017 в 10:05
  • 2
    @AndreiGheorghiu, я не знаю быстрого решения этой проблемы. На самом деле проблема сама по себе различна по своему характеру. Если у вас есть универсальное решение, вы должны отправить ответ. – Michael_B 28 April 2017 в 12:09
  • 3
    Кроме того, для кого-то, кто читает этот ответ исключительно в образовательных целях, я думаю, что вы правы. Немногие, если таковые имеются, люди пройдут весь список ссылок. – Michael_B 28 April 2017 в 12:10
  • 4
    Но для кого-то, кто посещает эту страницу, кто отчаянно нуждается в решении , я бы сказал, что они пройдут через каждую ссылку, надеясь найти способ, который работает. На основании вышеперечисленных ответов на этот ответ и этот [ и этот (см. «Боковое примечание» внизу), я бы сказал, что по крайней мере некоторые люди находят ссылки полезно. – Michael_B 28 April 2017 в 12:11
  • 5
    @Michael_B, у меня не было терпения, чтобы пройти через все ссылки и проверить, если кто-то придумал js-исправление для него, поэтому я сделал свой собственный , для специального случая, когда нет определенного сетка (или известная ширина ребенка). Просто дети с переменной шириной, последняя строка должна быть выровнена по левому краю, а предыдущие строки должны растягиваться, чтобы заполнить полный размер. – Andrei Gheorghiu 28 June 2017 в 14:59

В качестве быстрого и грязного решения можно использовать:

.my-flex-child:last-child/*.product:last-child*/ {
  flex-grow: 100;/*Or any number big enough*/
}
0
ответ дан Boris D. Teoharov 15 August 2018 в 17:29
поделиться

Я использовал этот обходной путь, даже если он не очень изящный, и он не использует силу Flexbox.

Он может быть выполнен на следующих условиях:

  • Все элементы имеют одинаковую ширину
  • Элементы имеют фиксированную ширину
  • Вы используете SCSS / SASS (этого можно избежать)

Если это так, вы можете использовать следующий фрагмент:

 $itemWidth: 400px;
 $itemMargin: 10px;

html, body {
  margin: 0;
  padding: 0;
}

.flex-container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  margin: 0 auto;
  border: solid 1px blue;
}

@for $i from 1 through 10 {
  @media only screen and (min-width: $i * $itemWidth + 2 * $i * $itemMargin) {
    .flex-container {
      width: $i * $itemWidth + 2 * $i * $itemMargin;
    }
  }
}

.item {
  flex: 0 0 $itemWidth;
  height: 100px;
  margin: $itemMargin;
  background: red;
}
<div class="flex-container">
  <div class="item"></div>
  <div class="item" style="flex: 500 0 200px"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>

Здесь Я создал пример в codepen , который также реализует маржу.

Второе и третье условия можно избежать, соответственно, используя переменные css (если вы решили обеспечить его поддержку) и компилируете приведенный выше фрагмент scss.

Ну, это правда, мы могли бы сделать это и перед flexbox, но display: flex может быть по-прежнему существенным для отзывчивого дизайна.

0
ответ дан TylerH 15 August 2018 в 17:29
поделиться