2

The below is my HTML. I have a total of 3 cards in three columns. The height of one card is set to flex so it gets auto adjusted to its content and I want the same height to be reflected to its sibling cards. Also, my requirement is not to use tables. I have tried display CSS property so far without success. I have attached an image of how it looks so far

how it looks now:

.user-panel,
.user-panel .card {
  min-height: 170px;
  display: flex;
}

.user-panel,
.user-panel .card .item {
  height: inherit;
  text-align: center;
}
<div class="row no-padding user-panel">
  <div class="col col-33 no-padding">
    <div class="card  no-padding">
      <div class="item item-text-wrap">
        <span>
            <div>
               <div class="row"><i class="user-profile-icon"></i> </div>
                  <div>{{data}}</div>
                  <div>(015106)</div>
               </div>
        </span>
      </div>
    </div>
  </div>
  <div class="col col-33 no-padding">
    <div class="card  no-padding">
      <div class="item item-text-wrap">
        <span>
             <div>
               <div>MY ACCESSES</div>
              </div>
         </span>
      </div>
    </div>
  </div>
  <div class="col col-33 no-padding">
    <div class="card  no-padding">
      <div class="item item-text-wrap">
        <span>
            <div>
                <div>MY ACCESSES</div>
             </div>
         </span>
      </div>
    </div>
  </div>

</div>
marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Delfin
  • 607
  • 7
  • 18

2 Answers2

9

Using flexbox approach you can easily achieve this. The height of the div in a row will be according the height of max height of any element.

Here is a working example I have created using your code:

* {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
}

.user-panel {
  display: flex;
  flex-wrap: wrap;
}

.user-panel .col {
  display: flex;
  padding: 0.5em;
  width: 33.33%;
}

.card {
  display: flex;
  flex-direction: column;
  background-color: red;
  padding: 1em;
  width: 100%;
}

.card .item-text-wrap {
  flex: 1 0 auto;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<div class="row no-padding user-panel">
  <div class="col col-33 no-padding">
    <div class="card  no-padding">
      <div class="item item-text-wrap">
        <span>
           <div>
               <div class="row"><i class="fa fa-user fa-4x"></i> </div>
               <div>Some Data</div>
               <div>Some Data</div>
           </div>
        </span>
      </div>
    </div>
  </div>
  <div class="col col-33 no-padding">
    <div class="card  no-padding">
      <div class="item item-text-wrap">
        <span>
           <div>
               <div>MY ACCESSES</div>
           </div>
        </span>
      </div>
    </div>
  </div>
  <div class="col col-33 no-padding">
    <div class="card  no-padding">
      <div class="item item-text-wrap">
        <span>
           <div>
               <div>MY ACCESSES My Access MY ACCESSES My Access MY ACCESSES My Access MY ACCESSES My Access MY ACCESSES My Access MY ACCESSES My Access MY ACCESSES My Access MY ACCESSES </div>
           </div>
        </span>
      </div>
    </div>
  </div>
Abhishek Pandey
  • 13,302
  • 8
  • 38
  • 68
Sahil Dhir
  • 4,162
  • 1
  • 13
  • 33
4

Add height: 100%; to .card and move the min-height to the outer container.

.user-panel {
  min-height: 170px;
}

.user-panel, .user-panel .card {
  display: flex;
  border: 1px solid #ccc;
  height: 100%;
}

.user-panel,
.user-panel .card .item {
  height: inherit;
  text-align: center;
}
<div class="row no-padding user-panel">
  <div class="col col-33 no-padding">
    <div class="card  no-padding">
      <div class="item item-text-wrap">
        <span>
          <div>
            <div class="row"><i class="user-profile-icon"></i> </div>
            <div>{{data}}</div>
            <div>(015106)</div>
            <div>(015106)</div>
            <div>(015106)</div>
            <div>(015106)</div>
            <div>(015106)</div>
            <div>(015106)</div>
            <div>(015106)</div>
            <div>(015106)</div>
            <div>(015106)</div>
            <div>(015106)</div>
            <div>(015106)</div>
          </div>
        </span>
      </div>
    </div>
  </div>
  <div class="col col-33 no-padding">
    <div class="card  no-padding">
      <div class="item item-text-wrap">
        <span>
            <div>
              <div>MY ACCESSES</div>
            </div>
            </span>
      </div>
    </div>
  </div>
  <div class="col col-33 no-padding">
    <div class="card  no-padding">
      <div class="item item-text-wrap">
        <span>
          <div>
            <div>MY ACCESSES</div>
            </div>
          </span>
      </div>
    </div>
  </div>
</div>
<div class="row no-padding user-panel">
  <div class="col col-33 no-padding">
    <div class="card  no-padding">
      <div class="item item-text-wrap">
        <span>
          <div>
            <div class="row"><i class="user-profile-icon"></i> </div>
            <div>{{data}}</div>
            <div>(015106)</div>
          </div>
        </span>
      </div>
    </div>
  </div>
  <div class="col col-33 no-padding">
    <div class="card  no-padding">
      <div class="item item-text-wrap">
        <span>
            <div>
              <div>MY ACCESSES</div>
            </div>
            </span>
      </div>
    </div>
  </div>
  <div class="col col-33 no-padding">
    <div class="card  no-padding">
      <div class="item item-text-wrap">
        <span>
          <div>
            <div>MY ACCESSES</div>
            </div>
          </span>
      </div>
    </div>
  </div>
</div>
Michael Coker
  • 52,626
  • 5
  • 64
  • 64