<h1>Passing the parent element</h1>
<ul id="parent" class="grouping">
<li>Hello World</li>
<li>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</li>
<li>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum mollis ultrices ipsum nec placerat.</li>
<li>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum mollis ultrices ipsum nec placerat. Maecenas in euismod justo. Duis euismod leo eleifend turpis aliquam in volutpat nulla mattis.</li>
</ul>
<h1>Passing a group of elements</h1>
<div id="group" class="grouping">
<div>Hello World</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum mollis ultrices ipsum nec placerat.</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum mollis ultrices ipsum nec placerat. Maecenas in euismod justo. Duis euismod leo eleifend turpis aliquam in volutpat nulla mattis.</div>
</div>
<h1>Setting a fixed height of 150px</h1>
<div id="height" class="grouping">
<div>Hello World</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum mollis ultrices ipsum nec placerat.</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum mollis ultrices ipsum nec placerat. Maecenas in euismod justo. Duis euismod leo eleifend turpis aliquam in volutpat nulla mattis.</div>
</div>
<h1>Setting a maximum height of 250px</h1>
<div id="maxheight" class="grouping">
<div>Hello World</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum mollis ultrices ipsum nec placerat.</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum mollis ultrices ipsum nec placerat. Maecenas in euismod justo. Duis euismod leo eleifend...
//this closure reserves the $.
(function ($) {
$.fn.extend({
equalHeight: function (options) {
//set default height to 0 or auto
var defaults = {
height:null,
minHeight: 0,
maxHeight: null
};
//merge options
options = $.extend(defaults, options);
//cache the children (is this the parent or a group of elements)
var children = (this.length > 1) ? this : this.children();
if(options.height !== null){
//if specific height is set
children.height(options.height);
}else{
//set the height to auto which releases the boxes heights
children.css('height', 'auto');
//loop though the elements and get their heights
children.each(function () {
//if bigger than the default set to default
if ($(this).outerHeight() > options.minHeight) options.minHeight= $(this).outerHeight();
//if maxheight is set
if(options.maxHeight !== null){
if(options.minHeight > options.maxHeight) options.minHeight= options.maxHeight;
}
});
//set the height on all the children
children.height(options.minHeight);
}
//return this so the jQuery chain is preserved
return this;
}
});
})(jQuery);
$(document).ready(function () {
//pass the parent to a group of elements
$('#parent').equalHeight();
//you can pass a set of elements instead of passing the parent
$('#group div').equalHeight();
//fixed height of 150px
$('#height').equalHeight({height:150});
//maximum-height of 250px
$('#maxheight').equalHeight({maxHeight:250});
//minimum-height of 400px
...
Please Whitelist JSFiddle in your content blocker.
Help keep JSFiddle free for always by one of two ways:
Whitelist JSFiddle in your content blocker (two clicks)
Go PRO and get access to additional PRO features →
Join the 4+ million users, and keep the JSFiddle dream alive.
Ad-free
All ads in the editor and listing pages are turned completely off.
Use pre-released features
You get to try and use features (like the Palette Color Generator) months before everyone else.
Fiddle collections
Sort and categorize your Fiddles into multiple collections.
Private collections and fiddles
You can make as many Private Fiddles, and Private Collections as you wish!
Console
Debug your Fiddle with a minimal built-in JavaScript console.