<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"> 
<channel>
    

    <title>Equal Heights mit jQuery</title>
    <link>http://www.highresolution.info/weblog/entry/equal_heights_mit_jquery/</link>
    <description>Erst vor ein paar Tagen habe ich hier im Blog &#252;ber den Ansatz von Chris Heilmann berichtet, gleichlange Spalten nicht mit CSS sondern nachtr&#228;glich per Javascript zu erzeugen.

Dieser Weg ist immer dann sinnvoll, wenn gleichlange Container einen optisch ein reizvollen Effekt darstellen, f&#252;r die Funktion der Webseite jedoch nicht zwingend relevant sind. Aus eigener Erfahrung w&#252;rde ich sagen, dass dies in den meisten F&#228;llen zutrifft. Nicht lange nachdem mein Blogbeitrag im Netz stand, meldete sich Dirk Ginader und wir bastelten eine L&#246;sung f&#252;r YAML auf Basis von jQuery. Die wenigen Codezeilen waren schnell geschrieben,&amp;nbsp; doch letzte Woche hatten wir beide viel umdie Ohren, sodass ich erst jetzt dazu komme, unser kleines Plugin mit dem Namen SyncHeight kurz vorzustellen.

Das Plugin synchronisiert die H&#246;he einer beliebigen Anzahl von Elementen innerhalb eines Layouts. Einzige Voraussetzung: Die Elemente m&#252;ssen sich lediglich &#252;ber einen gemeinsamen CSS Selektor ansprechen lassen (also beispielsweise eine gemeinsame CSS&#45;Klasse). Als Beispiel hier der Aufruf zur Anpassung der Containerh&#246;hen der YAML Subtemplates:

$(document).ready(function(){
  $(&#39;.subcolumns &gt; div&#39;).syncHeight();
}); 

F&#252;r Layouts mit fixer Breite war&#8217;s das bereits. Innerhalb eines flexiblen Layouts kann es n&#246;tig sein, die Angleichung der Containerh&#246;hen zu aktualisieren wenn die Breite des Browserfensters ge&#228;ndert wird. Dazu kann der Resize Event von jQuery genutzt werden:

$(document).ready(function(){
  $(&#39;.subcolumns &gt; div&#39;).syncHeight();
  $(window).resize(function(){ 
    $(&#39;.subcolumns &gt; div&#39;).syncHeight();
  });
});

Nachtrag 11.9: Befinden sich gleich mehrere Subtemplates auf der Seite empfielt es sich, den gew&#252;nschten Subtemplate&#45;Container direkt &#252;ber eine ID anzusprechen. Sollen hingegen ALLE Subtemplates innerhalb einer Webseite mit einem Schlag bearbeitet werden, so sind noch ein paar mehr Zeilen Javascript n&#246;tig. Hier hat sich Reinhard Hiebl bereits Gedanken gemacht schl&#228;gt folgenden Code vor:

$(document).ready(function(){
  var eachCase = &#39;.subcolumns&#39;; // for each lines/paragraphs
  var element = &#39;&gt; div&#39;; // elements within lines/paragraphs from eachCase

  $($(eachCase)).each(function() {
    var el = $(this).find(element);

    el.syncHeight();
    $(window).resize(function(){
      el.syncHeight();
    });
  });
});

In diesem Fall werden alle Subtemplates einer Webseite erfasst, jedoch die Container&#45;H&#246;hen immer nur jeweils innerhalb eines Subtemplates synchronisiert.

Letztlich ist die Anwendung nicht auf YAML begrenzt. &#220;ber den Selektor k&#246;nnen beliebige Elemente in ihrer H&#246;he manipuliert werden. 

Download des Plugins (v1.0): jquery.syncheight.zip (Dual licensed under the MIT and GPL licenses)</description>
    <dc:language>de-de</dc:language>
    <dc:creator>Dirk</dc:creator>
    <dc:rights>Copyright 2007</dc:rights>
    <dc:date>2007-09-10T;08:22:14+00:00</dc:date>
    <admin:generatorAgent rdf:resource="http://www.expressionengine.com/" />
<!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
         xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description
    rdf:about="http://www.highresolution.info/weblog/entry/equal_heights_mit_jquery/"
    trackback:ping="http://www.highresolution.info/trackback/1280/xolybdUB/"
    dc:title="Equal Heights mit jQuery"
    dc:identifier="http://www.highresolution.info/weblog/entry/equal_heights_mit_jquery/" 
    dc:subject="Hausinternes,CSS &amp;amp;amp; XHTML,YAML,jQuery"
    dc:description="Erst vor ein paar Tagen habe ich &amp;lt;a href=&quot;http://blog.highresolution.info/index.php?/highresolution/comments/equal_column_heights_mit_javascript/&quot; title=&quot;hier im Blog&quot;&amp;gt;hier im Blog&amp;lt;/a&amp;gt; &#252;ber den &amp;lt;a href=&quot;http://www.wait&#45;till&#45;i.com/index.php?p=479&quot; title=&quot;Ansatz&quot;&amp;gt;Ansatz&amp;lt;/a&amp;gt; von &amp;lt;a href=&quot;http://wait&#45;till&#45;i.com/&quot; title=&quot;Chris Heilmann&quot;&amp;gt;Chris Heilmann&amp;lt;/a&amp;gt; berichtet, gleichlange Spalten nicht mit CSS sondern nachtr&#228;glich per Javascript zu erzeugen. Dieser Weg ist immer dann sinnvoll, wenn gleichlange&#8230;"
    dc:creator="Dirk"
    dc:date="2007-09-10 08:22:14 AM GMT" />
</rdf:RDF>
--> 


    <item>
      <title>Kommentar von Dirk</title>
      <link>http://www.highresolution.info/weblog/entry/equal_heights_mit_jquery/</link>
      <description>Hallo Johannes,

Dein Problem hängt vermutlich mit deiner speziellen Layoutumsetzung zusammen. Allerdings fehlt mir da auf die Schnelle der Überblick und ich löse hier in meinem Blog auch keine Layoutprobleme. Daher musst Du Dich da schon selber durchkämpfen. 

Ein Hinweis noch: Deine &#8220;.h&#8221; Klasse an deinem &#8220;wrapper&#8221; halte ich für überflüssig.

Gruß
Dirk</description>
      <content:encoded><![CDATA[<p>Hallo Johannes,</p>

<p>Dein Problem hängt vermutlich mit deiner speziellen Layoutumsetzung zusammen. Allerdings fehlt mir da auf die Schnelle der Überblick und ich löse hier in meinem Blog auch keine Layoutprobleme. Daher musst Du Dich da schon selber durchkämpfen. </p>

<p>Ein Hinweis noch: Deine &#8220;.h&#8221; Klasse an deinem &#8220;wrapper&#8221; halte ich für überflüssig.</p>

<p>Gruß<br />
Dirk
</p>]]></content:encoded>
    <dc:date>2012-01-18T;11:39:34+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Johannes</title>
      <link>http://www.highresolution.info/weblog/entry/equal_heights_mit_jquery/</link>
      <description>Hallo Dirk,
unter http://johannes.theile.org/groups/idee2_2.html findest Du mein Beispiel mit Padding und unter http://johannes.theile.org/groups/idee2_2_kein_padding.html ist die Version ohne Padding.

Wenn ich dem DIV content padding von 30px gebe, dann sind die Spalten links und rechts nicht lang genug. Lasse ich das Padding weg, dann grenzen die Spalten direkt an den Footer an, womit aber auch der Text in &#8220;content&#8221; direkt dran klebt.

Vielleicht habe ich auch nur was falsch verstanden?!

Danke für Deine Hilfe!

Grüße,
Johannes</description>
      <content:encoded><![CDATA[<p>Hallo Dirk,<br />
unter http://johannes.theile.org/groups/idee2_2.html findest Du mein Beispiel mit Padding und unter http://johannes.theile.org/groups/idee2_2_kein_padding.html ist die Version ohne Padding.</p>

<p>Wenn ich dem DIV content padding von 30px gebe, dann sind die Spalten links und rechts nicht lang genug. Lasse ich das Padding weg, dann grenzen die Spalten direkt an den Footer an, womit aber auch der Text in &#8220;content&#8221; direkt dran klebt.</p>

<p>Vielleicht habe ich auch nur was falsch verstanden?!</p>

<p>Danke für Deine Hilfe!</p>

<p>Grüße,<br />
Johannes
</p>]]></content:encoded>
    <dc:date>2012-01-18T;11:39:34+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Dirk</title>
      <link>http://www.highresolution.info/weblog/entry/equal_heights_mit_jquery/</link>
      <description>Hallo Johannes,

nein, Paddings sollten berücksichtigt werden, da die Gesamthöhe der Container ausgewertet wird. Allerdings &#45; speziell bei den Subtemplates &#45; kann die Eigenschaft &amp;lt;div class=&#8220;codeblock&#8221;&amp;gt;
overflow:hidden&amp;nbsp;

&amp;lt;/div&amp;gt; für Dein Problem verantwortlich sein. Damit werden &#8220;unnötige&#8221; Paddings abgeschnitten.

Teste das mal bitte und gib mir notfalls Bescheid, falls es doch woanders klemmen sollte.

Gruß
Dirk</description>
      <content:encoded><![CDATA[<p>Hallo Johannes,</p>

<p>nein, Paddings sollten berücksichtigt werden, da die Gesamthöhe der Container ausgewertet wird. Allerdings - speziell bei den Subtemplates - kann die Eigenschaft &lt;div class=&#8220;codeblock&#8221;&gt;<code><span style="color: #000000">
<span style="color: #0000BB">overflow</span><span style="color: #007700">:</span><span style="color: #0000BB">hidden&nbsp;</span>
</span>
</code>&lt;/div&gt; für Dein Problem verantwortlich sein. Damit werden &#8220;unnötige&#8221; Paddings abgeschnitten.</p>

<p>Teste das mal bitte und gib mir notfalls Bescheid, falls es doch woanders klemmen sollte.</p>

<p>Gruß<br />
Dirk
</p>]]></content:encoded>
    <dc:date>2012-01-18T;11:39:34+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Johannes</title>
      <link>http://www.highresolution.info/weblog/entry/equal_heights_mit_jquery/</link>
      <description>Hallo,
kann es sein, dass das Plugin padding&#45;Angaben nicht in die Höhe der Elemente miteinberechnet?

Sobald ich nämlich padding&#45;bottom für ein Element angebe, stimmt die Höhe der anderen Columns nämlich nicht mehr.

Kann man das irgendwie umgehen?

Grüße,
Johannes

PS: Abgesehen davon ein super Plugin!</description>
      <content:encoded><![CDATA[<p>Hallo,<br />
kann es sein, dass das Plugin padding-Angaben nicht in die Höhe der Elemente miteinberechnet?</p>

<p>Sobald ich nämlich padding-bottom für ein Element angebe, stimmt die Höhe der anderen Columns nämlich nicht mehr.</p>

<p>Kann man das irgendwie umgehen?</p>

<p>Grüße,<br />
Johannes</p>

<p>PS: Abgesehen davon ein super Plugin!
</p>]]></content:encoded>
    <dc:date>2012-01-18T;11:39:34+00:00</dc:date>
    </item>

    <item>
      <title>Kommentar von Nina</title>
      <link>http://www.highresolution.info/weblog/entry/equal_heights_mit_jquery/</link>
      <description>Feine Sache, werde ich auf jeden Fall ausprobieren :)</description>
      <content:encoded><![CDATA[<p>Feine Sache, werde ich auf jeden Fall ausprobieren :)
</p>]]></content:encoded>
    <dc:date>2012-01-18T;11:39:34+00:00</dc:date>
    </item>
 

</channel>
</rss>
