Gleiche Höhe mit jQuery EqualHeights

Mit dem YAML-CSS-Framework können nebeneinander angeordnete Layoutboxen die selbe Elementhöhe zugewiesen werden (equal height boxes). Dieses Tutorial zeigt, wie man das mit dem jQuery-Plugin EqualHeights macht.

Der Vorteil mit jQuery EqualHeights ist, dass die Layoutboxen unabhängig voneinander positioniert sein können. Auch kann dieses Verhalten mehreren Elementen unterschiedlichen Typs mit einem Funktionsaufruf zugewiesen werden. Wie das aussieht, zeigen wir an einem Beispiel.

Ohne EqualHeights

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ac diam odio, non vulputate ipsum. Curabitur sit amet nunc nisi, condimentum scelerisque felis. Maecenas fermentum accumsan felis, et euismod justo vestibulum ut. Praesent nec elit in purus pretium gravida. Donec.

Lorem ipsum dolor sit amet, consectetur adipiscing elit

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec interdum eros sit amet ante mollis elementum. Aliquam sapien quam, vehicula.

 

Sowohl der Titel, der möglicherweise umbricht, als auch der Text, der unterschiedlich lang sein kann, führen zu einem uneinheitlichen Bild. Mit CSS lässt sich wohl was tun. Es ist allerdings kaum möglich, die für einen Browser spezifische Darstellung bereits zuvor hinreichend zu berücksichtigen. Während im einen Browser die Titelzeile umbricht, ist das möglicherweise bei einem anderen aufgrund der Darstellung einer kleineren Schrift gerade noch nicht der Fall.

Mit EqualHeights

Schauen wir uns den selben HTML-Code noch einmal an. Diesmal haben die Floating-Divs jedoch die Klasse aitsuExampleBox zugewiesen und die Höhen werden mit dem EqualHeights-Plugin einander angeglichen:

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ac diam odio, non vulputate ipsum. Curabitur sit amet nunc nisi, condimentum scelerisque felis. Maecenas fermentum accumsan felis, et euismod justo vestibulum ut. Praesent nec elit in purus pretium gravida. Donec.

Lorem ipsum dolor sit amet, consectetur adipiscing elit

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec interdum eros sit amet ante mollis elementum. Aliquam sapien quam, vehicula.

 

Für das vorliegende Beispiel sieht der Aufruf wie folgt aus:

$(document).ready(function () { $("div.aitsuExampleBox h3").equalHeights(); $("div.aitsuExampleBox p").equalHeights(); });

Plugin

Folgender Code kann nach der Einbindung von jQuery in den HTML-Code integriert oder referenziert werden:

(function($) { $.fn.equalHeights = function() { var targetHeight = 0; this.each(function() { if ($(this).height() > targetHeight) targetHeight = $(this).height(); }); this.each(function() { $(this).height(targetHeight); }); return this; }; })(jQuery);