この記事では、Frameset が作成した、できるだけシンプルなフレームワークを紹介します。 さて、まずはこのフレームワークのページ構造を見てみましょう。これは完全に手動のテスト プログラムなので、Notepa++ で非常に大まかなコードをいくつか作成しただけです。ただし、フレームセットの一般的なコンテンツはそのまま含まれています。さて、本題に戻って、まずファイル構造を見てみましょう。 1.Frame.htmlにはフレームの構造が含まれています 2.link.htmlにはフレームの左側にメニューバーが含まれています 3.firstPage.html にはフレームワークのメインページのテキスト行が含まれています (私は怠け者なのでうまくできませんでした) 4.secondPage.html は上記の 3 と似ており、テストに使用されます。 スクリーンショットはこちらです(初めてなので鮮明ではありません)
 Frame.htm のコードを見てみましょう。 <html> <ヘッド> </head> <フレームセット cols="159px,*"> <フレーム名="a1" src="link.html" noresize="yes" border="1px" scrolling="auto" bordercolor="blue" > <フレーム名="a2" src="firstPage.html"> </フレームセット> </html> 簡単だと思いませんか?これは主にFrameset要素であり、属性cols="159px,*"が設定されています。この属性の目的は、ページを 159 px と他の 2 つの領域に分割することです。上の写真の通りです。 次にフレーム タグが続きます。上記の cols 属性には複数の値があり、その下の <frame> 子要素にも同じ数の値が必要です。次に、<frame> の共通属性をいくつか示します。境界線の幅、スクロール バーの表示の有無、境界線の色、ユーザーがサイズを変更できるかどうかなどが含まれます。どのソースファイルかなど。 次に、2 番目のソース ファイルはテストのために firstPage を指します。 次はlink.htmlです: <スタイル タイプ="text/css"> <!-- *{マージン:0;パディング:0;境界線:0;} 体 { フォントファミリー: arial、宋体、serif; フォントサイズ:12px; } #ナビ{ 幅:180ピクセル; 行の高さ: 24px; リストスタイルタイプ: なし; テキスト配置:左; /* ul メニュー全体の行の高さと背景色を定義します */ } /*===================第一レベルディレクトリ=====================*/ #nav { 幅: 160ピクセル; 表示: ブロック; パディング左:20px; /*幅(必須)、そうでない場合、下の Li は変形されます*/ } #nav li { background:#CCC; /*第一階層ディレクトリの背景色*/ border-bottom:#FFF 1px solid; /*下部に白い境界線*/ フロート:左; /*float: left、設定すべきではないが、Firefoxでは正常に表示できない Nav の幅を継承し、幅を制限すると、li は自動的に下方向に拡張されます*/ } #nav li a:hover{ background:#CC0000; /*第一階層のディレクトリにマウスオーバーした時に表示される背景色*/ } #nav a:link { 色:#666; テキスト装飾:なし; } #nav a:訪問済み{ 色:#666;テキスト装飾:なし; } #nav a:hover { 色:#FFF;テキスト装飾:なし;フォントの太さ:太字; } /*===================セカンダリディレクトリ=====================*/ #nav li ul { リストスタイル:なし; テキスト配置:左; } #nav li ul li { background: #EBEBEB; /*セカンダリディレクトリの背景色*/ } #nav li ul a{ パディング左:10px; 幅:160ピクセル; /* padding-left セカンダリ ディレクトリ内のテキストは右に移動しますが、Width は (合計幅 - padding-left) にリセットする必要があります*/ } /*以下はセカンダリディレクトリのリンクスタイルです*/ #nav li ul a:link { 色:#666; テキスト装飾:なし; } #nav li ul a:visited { 色:#666;テキスト装飾:なし; } #nav li ul a:hover { 色:#F3F3F3; テキスト装飾:なし; フォントの太さ:通常; 背景:#CC0000; /* マウスオーバー時の二次フォント色、背景色*/ } /*================================*/ #nav li:hover ul { 左: 自動; } #nav li.sfhover ul { 左: 自動; } #コンテンツ { クリア:左; } #nav ul.collapsed { 表示: なし; } --> #親{ 幅:180ピクセル; } *#親{ 幅:100%; } </スタイル> <div id="親"> <ul id="nav"> <li><a href="#Menu=ChildMenu1" onclick="DoMenu('ChildMenu1')">私のウェブサイト</a> <ul id="子メニュー1" class="折りたたまれている"> <li><a href="firstPage.html" target="a2">最初のページ</a></li> <li><a href="secondPage.html" target="a2">2 ページ目</a></li> </ul> </li> <li><a href="#Menu=ChildMenu2" onclick="DoMenu('ChildMenu2')">マイアカウント</a> <ul id="子メニュー2" class="collapsed"> <a href="#">お支払い</a></li> <li><a href="#">管理</a></li> <li><a href="#">オンライン決済</a></li> <li><a href="#">送金登録</a></li> <li><a href="#">オンラインで見つかりました</a></li> <li><a href="#">歴史的記録</a></li> </ul> </li> <li><a href="#Menu=ChildMenu3" onclick="DoMenu('ChildMenu3')">ウェブサイト管理</a> <ul id="子メニュー3" class="折りたたまれている"> <li><a href="#">ログイン</a></li> <a href="#">役割管理</a></li> <li><a href="#">ユーザー管理</a></li> </ul> </li> </ul> </div> <スクリプトタイプ=テキスト/javascript> <!-- var LastLeftID = ""; 関数menuFix() { var obj = document.getElementById("nav").getElementsByTagName("li");
(var i=0; i<obj.length; i++) の場合 { obj[i].onmouseover=関数() { this.className+=(this.className.length>0? " ": "") + "sfhover"; } obj[i].onMouseDown=関数() { this.className+=(this.className.length>0? " ": "") + "sfhover"; } obj[i].onMouseUp=関数() { this.className+=(this.className.length>0? " ": "") + "sfhover"; } obj[i].onmouseout=関数() { this.className=this.className.replace(新しい RegExp("( ?|^)sfhover\\b"), ""); } } } 関数 DoMenu(emid) { var obj = document.getElementById(emid); obj.className = (obj.className.toLowerCase() == "展開済み"?"折りたたみ済み":"展開済み"); if((LastLeftID!="")&&(emid!=LastLeftID)) //前のメニューを閉じる { document.getElementById(LastLeftID).className = "折りたたまれています"; } LastLeftID = エミッド; } 関数 GetMenuID() { var メニューID=""; var _paramStr = 新しい文字列(window.location.href); var _sharpPos = _paramStr.indexOf("#");
_sharpPos >= 0 && _sharpPos < _paramStr.length - 1 の場合 { _paramStr = _paramStr.substring(_sharpPos + 1, _paramStr.length); } それ以外 { _paramStr = ""; }
(_paramStr.length > 0)の場合 { var _paramArr = _paramStr.split("&"); (_paramArr.length>0)の場合 { var _paramKeyVal = _paramArr[0].split("="); (_paramKeyVal.length>0)の場合 { メニューID = _paramKeyVal[1]; } } }
if(メニューID!="") { DoMenu(メニューID) } } GetMenuID(); //*これら2つの関数の順序に注意してください。そうしないと、GetMenuID()はFirefoxで動作しません。 メニュー修正(); --> </スクリプト> これは実は単なる怠惰なアイデアです。インターネットで見つけた DIV+CSS+JS を使用してドロップダウン メニューを作成しました。ご興味があれば、自分で見てみてください。変更方法さえわかっていれば、使用でき、問題ないと思います。 以下に 2 つのテスト ページを示します。HTML を少し知っていれば誰でもテスト ページを作成できますので、ここではページ 1 のコードのみを掲載します。 <html> <ヘッド> <title>最初のページ</title> <スタイル> </スタイル> </head> <本文> <h1>最初のページ</h1> </本文> </html> 専門家はみんなこれを見て吐き気を催し、くだらないと言うでしょうが、これは私が作ったちょっとしたものの記録にすぎません。ハハハ、ごめんなさい。 |