Страницы

Поиск по вопросам

суббота, 7 декабря 2019 г.

Как выравнивать блоки по центру не сломав wrap?

#html #css #вёрстка #адаптивная_верстка #flexbox


Допустим есть блоки



.main {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  background: #fff;
}

.box {
  width: 170px;
  height: 130px;
  border-radius: 3px;
  border: dashed 2px rgba(0, 0, 0, 0.1);
  margin: 10px;
}
Мне нужно чтобы последние блоки прижимались к левому краю, но при этом чтобы вся конструкция блоков была по центру, т.е. будто там указан justify-content: center. Можно задать фиксированную ширину, но проблема в том что .main резиновый. На jsfiddle это хорошо видно. Если уменьшать или увеличивать область отображения то будет работать warp, но при этом справа будет много свободного пространства


Ответы

Ответ 1



.main { display: grid; grid-gap: 10px; grid-template-columns: repeat(auto-fill, 170px); max-width: 890px; margin: auto; justify-content: center; } .box { height: 130px; border-radius: 3px; border: dashed 2px rgba(0, 0, 0, 0.1); }


Ответ 2



Как вариант *, :before, :after { box-sizing: border-box; } * { padding: 0; margin: 0; } .main { display: flex; justify-content: center; flex-wrap: wrap; background: #fff; } .box { width: 170px; height: 130px; border-radius: 3px; border: dashed 2px rgba(0, 0, 0, 0.1); margin: 10px; } .box:empty { height: 0; border: none; margin-top: 0; margin-bottom: 0; }
1
2
3
4
5
6
7


Ответ 3



Можно обернуть блоки в еще один блок которому задаешь justify-content: flex-start; и изменять его ширину через @media, а блоку .main задать justify-content: center;

Комментариев нет:

Отправить комментарий