EqualHeight.jsは複数カラムの縦幅を揃えてくれるjQueryプラグインです。
レスポンシブにも対応していてとっても便利です!
基本的な使い方
常に特定のカラムの高さを揃えたい場合は、以下のように使います。
JavaScript
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <script src="jquery.equalheight.min.js"></script> <script> $(document).ready(function () { $('.column2 p').equalHeight(); //高さを揃えたい要素を指定 }); </script>
css
.column2 { width: 100%; overflow: hidden; } .column2 div { float: left; width: 50%; } .column2 div p{ margin: 10px; padding: 10px; background: #FCCDE4; }
複合的な使い方
上の段はずっと2カラムのままで、下の段は横幅639px以下は1カラム、640px以上は2カラム、800px以上は4カラムになるようにしています。
こちらの方法でIE7,8に対応する方法は見つからなかったので、その場合はこちらの記事をご参考ください。
JavaScript
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <script src="jquery.equalheight.min.js"></script> <script> $(document).ready(function () { //上の2カラムの高さ揃え $('.column2 p').equalHeight(); //高さを揃えたい要素を指定 //下の4カラムの高さ揃え var equalHeight = $('.column1-2 p').equalHeight({wait: true}); // Browser supports matchMedia if (window.matchMedia) { // MediaQueryList var mql = window.matchMedia("(min-width: 640px)"); //このサイズ以上で高さ揃えを行う // MediaQueryListListener var equalHeightCheck = function (mql) { if (mql.matches) { equalHeight.start(); } else { equalHeight.stop(); } }; // Add listener mql.addListener(equalHeightCheck); // Manually call listener equalHeightCheck(mql); } // Browser doesn't support matchMedia else { equalHeight.start(); } });
css
.column2 { width: 100%; overflow: hidden; } .column2 div { float: left; width: 50%; } .column2 div p{ margin: 10px; padding: 10px; background: #FCCDE4; } .column1-2 { width: 100%; overflow: hidden; } .column1-2 div p { background: #ddd; margin: 10px; padding: 10px; } @media (min-width: 640px) { .column1-2 div { width: 50%; float: left; } } @media (min-width: 800px) { .column1-2 div { width: 25%; float: left; } }