HOME>WEBプログラム覚書>Divの高さを合わせるスクリプト(safari対応版)

Divの高さを合わせるスクリプト(safari対応版)

先日のエントリーDivの高さを合わせるスクリプトではsafariで動作しなかったが何とか解決。

やっぱりsort部分が良くなかったようだ。とはいえsort自体は機能するので自分の書き方がおかしかったのが原因なんだろうけど。とりあえず

Javascript

  1. //配列を昇順でソート
  2. idHeight.sort(
  3.     function Func(a, b){//ソートのための比較関数
  4.         return (b - a);
  5.     }
  6. );
  7.  

部分を下記のように変えればOK

Javascript

  1. //ソートのための比較関数
  2. function Func(a, b){
  3.     return (b - a);
  4. }
  5. idHeight.sort(Func);
  6.  

その他↓のようにやっても動きます。

javascript サンプル

恥ずかしすぎるミス・・・2008/01/18修正。

Javascript

  1. window.onload = function(){
  2.     //高さ合わせるIDを指定
  3.     var id = new Array("jsLeft", "jsCenter", "jsRight");
  4.     var idHeight = new Array();
  5.     var maxHeight = 0;//追記
  6.     //指定IDの高さを取得
  7.     for(i=0; i<id.length; i++){
  8.         idHeight[i] = document.getElementById(id[i]).offsetHeight;
  9.     }
  10.  
  11.     //最大の高さをmaxHeightに格納
  12.     for(i=0; i<id.length-1; i++){
  13.         /*ここ間違い
  14.         maxHeight = Math.max(idHeight[i], idHeight[i+1]);
  15.         */
  16.         maxHeight = Math.max(maxHeight, idHeight[i]);
  17.     }
  18.  
  19.     //一番高いのに合わせる
  20.     for(i=0; i<id.length; i++){
  21.         document.getElementById(id[i]).style.height = maxHeight + "px";
  22.     }
  23. }
  24.  

HTMLサンプル

HTML

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

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はデータベースです。



動作確認済みブラウザ
WIN:IE7、Firefox2.0.0.8、Netscape7.1/Mac:IE5.5、safari

Divの高さを合わせるってタイトルですが、指定IDの高さを合わせるって感じなのでDiv以外にも利用できるかと思われ。

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

コメント

検索で飛んできました。
これは素晴らしいですね。
id指定となっていますが、DT DDなど、タグに直接していする場合も、
教えて頂ければ幸いです。

Guestからcaquuへの返信

2012年7月17日 11:56 | 返信

管理人さん

有難う御座います!!!
これは、大変便利です。
で、横並びのリストを作るテクニックをよく見かけます。
というか、一般的なのかもしれません。
お時間のある時、「DL 横並び」で検索を掛けて見て下さい。

しかし、あくまでも、は、の高さを超えない事を想定したものが多く、
万が一超える場合は、意味の無い
を側に連続で入れたり、
クラスを割り当て、と同じ行数にしてやる必要がありました。
なので、このスクリプトは大変便利だと思います。

Guestからcaquuへの返信

2012年7月17日 13:13 | 返信

getelementsbytagnameだと、一つ('DD')しか、指定出来ませんか?
('DT','DD')だと出来ないみたいですね。すみません、素人過ぎて。

コメントする
Name
Email Address
URL