Enkelt sätt för att få två kolumner till samma höjd

Att få två kolumner att ständigt ha samma höjd i ren CSS är pain-in-the-ass rent ut sagt 9 gånger av 10, speciellt om du inte vill bland in bilder i din lösning.

Screen shot 2010 05 27 at 5.11.35 PM 500x90 Enkelt sätt för att få två kolumner till samma höjd

Samma höjd på fyra kolumner

jQuery tillhandahåller dock en väldigt smart och snabb lösning för att fixa samma höjd på dina kolumner:

[javascript]
var highestCol = Math.max($(‘#colright’).height(),$(‘#colleft’).height());
$(‘#colright, #colleft’).height(highestCol);
[/javascript]

Vad de gör är att det helt enkelt räknar ut höjden på båda, tar den som är högst (längst?) och sätter den mindre till samma höjd.

Värt att notera är att systemet inte är dynamiskt för fem öre när handlar om dynamiska sidladdningar så som med AJAX eller annat som påverkar höjden utan att ladda om sidan. Detta på grund av att höjden sätts med .height(). Sätter man höjden med min-height eller något liknande kanske ett annat resultat infinner sig, men det är ingenting jag har kollat.

Lösningen på det fasta problemet kan också avhjälpas med att binda ett event eller en timer som kollar av höjden vilket helt plötsligt gör systemet lite krångligt. Hade själv problem med det på denna sidan när scriptet skulle samarbeta med Disqus, lösningen hette bakgrundsbild med CSS istället …

  • Pingback: Tweets that mention Enkelt sätt för att få två kolumner till samma höjd | cynatic -- Topsy.com

  • vikstrom

    Intressant lösning, kanske inte optimal men funkar det så. Har du testat hur det funkar i olika webbläsare? Redan på min-height blir det ju trassel om man nu skulle vilja använda det. IE6 säger väl buhu på en gång. Att sedan få det att funka med Ajax lär väl inte vara några större bekymmer, bara att se till att scriptet körs efter att datat lästs in och att den inte har låst höjd innan.

    • http://cynatic.org Andreas Johansson

      Det känns som att de med IE6 vet om att du inte kan få all upplevelse ändå, så jag har absolut inga problem med att använda min-height/max-height.

      Ajax är noll problem – om du har kontroll över den.

      • vikstrom

        Visst kan man köra på att IE6 användarna inte kan få all upplevelse, men då måste det finnas en någorlunda schysst fallback lösning. På de flesta real-case sajterna tror jag att besökarantalet med IE6 vida överstiger de 16-17% dom brukar ha i mätningarna, kan bara kolla på våra olika bokningssajter. Annars en snygg lösning, får se om man har tid att testa lite sen!

        • http://cynatic.org Andreas Johansson

          Vet ju att det finns ett min-height hack till IE6 också med hjälp av !important, dock inte kollat in hur det fungerar i praktiken – brukar köra det mesta dynamiskt.

          Det absolut säkraste sättet är fortfarande background-image med background-position. Fler HTTP-requests visserligen men troligen är det inte ens märkbart om inte siten är väldigt tung.