1

I have a fairly simple thing I'm trying to do here.

I want to have a dynamic list of groups, and each group has a dynamic list of items. I'm trying to display them nicely so that the groups aren't too tall. To do this I've used a max-height property on the list.

However, as you can see if there are several items in a group - while the items are wrapping, the group itself isn't widening to accommodate them. Is there a way to get flexbox to do this - or is a different css framework required?

.height-ruler {
  height: 100px;
  background-color: blue;
  width: 10px;
}

.groups {
  display: flex;
  flex-flow: row wrap;
  border: solid 3px black;
  margin: 2px;
  padding: 2px;
  width: 500px;
}

.group {
  display: flex;
  flex-flow: column wrap;
  flex: 1 0 auto;
  border: dashed 1px black;
  margin: 2px;
  padding: 2px;
  max-height: 100px;
}

.item {
  background-color: pink;
  border: solid 1px red;
  width: 50px;
  height: 20px;
  margin: 2px;
}
<h1>flexy flex</h1>
<div class="groups">
  <div class="height-ruler"></div>
  <div class="group">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="group">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="group">
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="group">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="group">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="group">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="group">
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="group">
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="group">
    <div class="item"></div>
    <div class="item"></div>
  </div>
  <div class="group">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>
Michael Benjamin
  • 346,931
  • 104
  • 581
  • 701
dwjohnston
  • 11,163
  • 32
  • 99
  • 194

0 Answers0