Works in all modern browsers and IE9+.
javascript:
function heightsEqualizer(selector) {
var elements = document.querySelectorAll(selector),
max_height = 0,
len = 0,
i;
if ( (elements) && (elements.length > 0) ) {
len = elements.length;
for (i = 0; i < len; i++) { // get max height
elements[i].style.height = ''; // reset height attr
if (elements[i].clientHeight > max_height) {
max_height = elements[i].clientHeight;
}
}
for (i = 0; i < len; i++) { // set max height to all elements
elements[i].style.height = max_height + 'px';
}
}
}
if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', function() {
heightsEqualizer('.js-equal-height');
});
window.addEventListener('resize', function(){
heightsEqualizer('.js-equal-height');
});
}
setTimeout(function () { // set 1 second timeout for having all fonts loaded
heightsEqualizer('.js-equal-height');
}, 1000);
html:
<div class="blocks">
<div class="block js-equal-height">Lorem Ipsum text.<br />
Lorem Ipsum text.<br />
</div>
<div class="block js-equal-height">Lorem Ipsum text.<br />
Lorem Ipsum text.<br />
Lorem Ipsum text.<br />
Lorem Ipsum text.<br/>
</div>
<div class="block js-equal-height">Lorem Ipsum text.<br />
Lorem Ipsum text.<br />
Lorem Ipsum text.<br />
</div>
<div class="block js-equal-height">Lorem Ipsum text.<br />
Lorem Ipsum text.<br />
Lorem Ipsum text.<br />
Lorem Ipsum text.<br/>
Lorem Ipsum text.<br/>
</div>
</div>
css:
* {
box-sizing: border-box;
}
.blocks {
float: left;
width: 100%;
}
.block {
float: left;
width: 20%;
background: #ffa;
padding: 10px;
margin: 10px;
}
After an entire day of searching, finally found the solution. Thanks :) Works wonderfully with DOM content.
Thank you its work :)