Victor Allegret
Victor Allegret

Reputation: 2404

100% height child doesn't fit the flex parent in non-Chrome browsers

I am making some thumbs with a bootstrap v4 (flexbox) col, but I can't find a solution to make the thumb content fit the entire column.

So if a thumb has more content than another, it will have a bigger height.

I need all the thumbs to have the same size, even if they don't have the same content. It actually works on my project, but only with Chrome.

.row {
  display: flex;
  display: -ms-flexbox;
  display: -webkit-box;
  flex-wrap: wrap;
  -ms-flex-wrap: wrap;
}

.col-6 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 50%;
  flex: 0 0 50%;
  max-width: 50%;
  padding-left: 15px;
  padding-right: 15px;
  width: 100%;
}

.thumb-accommodation {
  height: 100%;
}

.thumb-accommodation__image {
  height: 120px;
  background-color: deeppink;
  color: white;
  padding: 10px;
}

.thumb-accommodation__content {
  background-color: aqua;
  height: calc(100% - 120px);
  padding: 10px;
}

h3 {
  margin: 0
}
<div class="row">
  <div class="col-6">
    <div class="thumb-accommodation">
      <div class="thumb-accommodation__image">
        <span>image</span>
      </div>
      <div class="thumb-accommodation__content">
        <h3>
          A realy realy realy realy realy realy realy realy big Title
        </h3>
        <p>
          Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor....
        </p>
      </div>
    </div>
  </div>

  <div class="col-6">
    <div class="thumb-accommodation">
      <div class="thumb-accommodation__image">
        <span>image</span>
      </div>
      <div class="thumb-accommodation__content">
        <h3>
          Title
        </h3>
        <p>
          Lorem ipsum dolor....
        </p>
      </div>
    </div>
  </div>
</div>

Upvotes: 1

Views: 192

Answers (2)

Rohit Verma
Rohit Verma

Reputation: 3785

You can use this jquery code to make same height

$(document).ready(function(){
	var heightBox =  0;
	$('.thumb-accommodation__content').each(function(){
	if($(this).height()>heightBox){
		heightBox=$(this).height();
		}
	});
	$('.thumb-accommodation__content').height(heightBox);
});
.row {
  display: flex;
  display: -ms-flexbox;
  display: -webkit-box;
  flex-wrap: wrap;
  -ms-flex-wrap: wrap;
}

.col-6 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 50%;
  flex: 0 0 50%;
  max-width: 50%;
  padding-left: 15px;
  padding-right: 15px;
  width: 100%;
}

.thumb-accommodation {
  height: 100%;
}

.thumb-accommodation__image {
  height: 120px;
  background-color: deeppink;
  color: white;
  padding: 10px;
}

.thumb-accommodation__content {
  background-color: aqua;
  height: calc(100% - 120px);
  padding: 10px;
}

h3 {
  margin: 0
}
<div class="row">
  <div class="col-6">
    <div class="thumb-accommodation">
      <div class="thumb-accommodation__image">
        <span>image</span>
      </div>
      <div class="thumb-accommodation__content">
        <h3>
          A realy realy realy realy realy realy realy realy big Title
        </h3>
        <p>
          Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor....
        </p>
      </div>
    </div>
  </div>

  <div class="col-6">
    <div class="thumb-accommodation">
      <div class="thumb-accommodation__image">
        <span>image</span>
      </div>
      <div class="thumb-accommodation__content">
        <h3>
          Title
        </h3>
        <p>
          Lorem ipsum dolor....
        </p>
      </div>
    </div>
  </div>
</div>

    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Upvotes: 1

Abhishek Pandey
Abhishek Pandey

Reputation: 13568

Use display: -webkit-flex; instead of display: -webkit-box; and remove flex-wrap: wrap;

.row {
  display: flex;
  display: -ms-flex;
  display: -webkit-flex;
}

.row {
  display: flex;
  display: -ms-flex;
  display: -webkit-flex;
}

.col-6 {
  -webkit-flex: 0;
  -ms-flex: 0 0 50%;
  flex: 0 0 50%;
  max-width: 50%;
  padding-left: 15px;
  padding-right: 15px;
  width: 100%;
}

.thumb-accommodation {
  height: 100%;
}

.thumb-accommodation__image {
  height: 120px;
  background-color: deeppink;
  color: white;
  padding: 10px;
}

.thumb-accommodation__content {
  background-color: aqua;
  height: calc(100% - 120px);
  padding: 10px;
}

h3 {
  margin: 0
}
<div class="row">

  <div class="col-6">
    <div class="thumb-accommodation">
      <div class="thumb-accommodation__image">
        <span>image</span>
      </div>
      <div class="thumb-accommodation__content">
        <h3>
          A realy realy realy realy realy realy realy realy big Title
        </h3>
        <p>
          Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor Lorem ipsum dolor....
        </p>
      </div>
    </div>
  </div>

  <div class="col-6">
    <div class="thumb-accommodation">
      <div class="thumb-accommodation__image">
        <span>image</span>
      </div>
      <div class="thumb-accommodation__content">
        <h3>
          Title
        </h3>
        <p>
          Lorem ipsum dolor....
        </p>
      </div>
    </div>
  </div>

</div>

Upvotes: 2

Related Questions