HOME>WEBプログラム覚書>Divの高さを合わせるスクリプト

Divの高さを合わせるスクリプト

tableでは簡単な高さあわせだが、CSSレイアウトの場合なかなか難しく背景などが途中で切れてしまうことが多々ある。

もちろん大枠で囲んでやればいいわけだが、Javascriptを利用して高さそろえるのもありかも。

Javascriptサンプル

指定したIDで一番高いものにその他の高さを合わせます。

Javascript

  1. <script language="javascript" type="text/javascript">
  2. //<![CDATA
  3.  
  4.     //左右コンテンツの高さあわせ(高いほうに)
  5.     window.onload = function(){
  6.  
  7.         //高さ合わせるIDを指定
  8.         var id = new Array("jsLeft", "jsCenter", "jsRight");
  9.         var idHeight = new Array();
  10.  
  11.         //指定IDの高さを取得
  12.         for(i=0; i<id.length; i++){
  13.             idHeight[i] = document.getElementById(id[i]).offsetHeight;
  14.         }
  15.  
  16.         //配列を昇順でソート
  17.         idHeight.sort(
  18.                         function Func(a, b){//ソートのための比較関数
  19.                             return (b - a);
  20.                         }
  21.                     );
  22.  
  23.         //一番高いのに合わせる
  24.         for(i=0; i<id.length; i++){
  25.             document.getElementById(id[i]).style.height = idHeight[0] + "px";
  26.         }
  27.  
  28.     }
  29. //]]>
  30. </script>
  31.  

HTML

  1. <div id="jsHeight01">
  2.  
  3.     <div id="jsLeft">
  4.         <h5>Javascript</h5>
  5.         <p>Javascriptはクライアントサイドで動作するプログラムです。</p>
  6.         <p>柔軟な言語のせいかいろいろな書き方があってわけわかりません。</p>
  7.     </div>
  8.  
  9.     <div id="jsCenter">
  10.         <h5>PHP</h5>
  11.         <p>PHPはサーバサイドで動作するプログラムです。</p>
  12.         <p>
  13.         PHP5は本格的なオブジェクト指向言語となり、PHP4のサポートも2007年いっぱいで終了のようですので<br />
  14.         PHP5に乗り換えたいのですが現在レンタルサーバはPHP5に対応しているところはあまりないので躊躇してしまいます。
  15.         </p>
  16.     </div>
  17.  
  18.     <div id="jsRight">
  19.         <h5>MySQL</h5>
  20.         <p>MySQLはデータベースです。</p>
  21.     </div>
  22. </div>
  23.  

CSSサンプル

CSS

  1. #jsLeft, #jsCenter, #jsRight {
  2.     float: left;
  3.     width: 200px;
  4.     padding: 5px;
  5. }
  6. #jsLeft {
  7.     background-color: #CCCCCC;
  8. }
  9. #jsCenter {
  10.     background-color: #000000;
  11. }
  12. #jsRight {
  13.     background-color: #993300;
  14. }
  15.  

実行結果

Javascript

Javascriptはクライアントサイドで動作するプログラムです。

柔軟な言語のせいかいろいろな書き方があってわけわかりません。

PHP

PHPはサーバサイドで動作するプログラムです。

PHP5は本格的なオブジェクト指向言語となり、PHP4のサポートも2007年いっぱいで終了のようですので
PHP5に乗り換えたいのですが現在レンタルサーバはPHP5に対応しているところはあまりないので躊躇してしまいます。

MySQL

MySQLはデータベースです。



IE7、Mac IE5.5、Firefox2.0.0.8、Netscape7.1で動作確認。問題はsafariで動かないこと(爆
とりあえずプロトタイプということで近いうちになんとか原因突き止めたいところですが・・・

どーもsortあたりが怪しいっぽい・・・

投稿日 2007年10月24日 16:03
カテゴリ JavaScript
タグ インターフェイス | サンプルコード
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1122

コメント

コメントする
Name
Email Address
URL