横並びにした要素の高さを自動的に揃えてくれるjQueryプラグイン「matchHeight.js」の使い方メモです。
最近はCSS3のflexboxプロパティで簡単に高さを揃える事ができますが、何らかの理由で使用できない場合はこの「matchHeight.js」が役立ちます。
使い方
- floatやinline-block等で横並びにした要素を用意します。classは任意で。
この段階では高さがバラバラですね。<ul class="matchHeightList"> <li class="listItem">ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。</li> <li class="listItem">ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。</li> <li class="listItem">ダミーテキストです。</li> <li class="listItem">ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。</li> </ul>
- matchHeight.jsのGitHubに移動し、zipファイルをダウンロード
- zipファイルを解凍し、「jquery.matchHeight.js」をhtmlに読み込みます。
または、CDNで読み込み。<script src="js/jquery-1.12.4.min.js"></script> <script src="js/jquery.matchHeight-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.matchHeight/0.7.2/jquery.matchHeight-min.js"></script>
- 最後にjQueryを書きます。
<script> $(function() { $('.listItem').matchHeight(); }); </script>
すると...
やったー!
レスポンシブ対応なので、ウインドウ幅が変わっても問題ありません。
デモページを用意したのでぐにぐに動かしてみてください。
オプション
上記ではclassを指定していますが、data-mh属性を使用する事で高さを揃えるブロックをグループ化する事ができます。
こちらはjQueryを記述する必要はなく、プラグイン本体の読み込みとdata-mh属性の記述のみで動作します。
このパターンもデモページに設置しているので、参考にしてみてください。
<ul class="matchHeightList">
<li data-mh="listItem01">グループ01><br>ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。</li>
<li data-mh="listItem01">グループ01><br>ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。</li>
<li data-mh="listItem02">グループ02><br>ダミーテキストです。</li>
<li data-mh="listItem02">グループ02><br>ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。ダミーテキストです。</li>
</ul>