HTML フレームセットのサンプルコード

HTML フレームセットのサンプルコード

この記事では、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>

専門家はみんなこれを見て吐き気を催し、くだらないと言うでしょうが、これは私が作ったちょっとしたものの記録にすぎません。ハハハ、ごめんなさい。

<<:  docker コマンド例外「権限が拒否されました」の解決方法

>>:  Vueのprovideとinjectの使い方と原則を分析する

推薦する

MySQL query_cache_type パラメータと使用方法の詳細

MySQL クエリ キャッシュを設定する目的は次のとおりです。クエリ結果をキャッシュしておくと、次回...

JavaScript キャンバス テキスト クロック

この記事では、テキストクロックを実装するためのキャンバスの具体的なコードを例として紹介します。具体的...

CSS3のall属性の使い方を理解する

1. 互換性以下のように表示されます。 互換性は問題ありません。IE を除き、他のブラウザは基本的に...

phpstudy から Linux への MySQL の移行に関するチュートリアル

プロジェクトの目的元のWindows環境でphpstudyを使用して構築されたMySQL 5.5.5...

CSS が初期読み込み時の白い画面の時間に与える影響

外部 CSS ファイルを使用したレンダリング パイプライン上図では、HTML データの要求から DO...

IEのクラッシュバグ

コードをコピーコードは次のとおりです。 <スタイル タイプ="text/css&qu...

Spring Cloud での Docker デプロイメントに jib を使用する詳細な手順

ジブの紹介Jib は Google が開発した、Java アプリケーションの Docker および ...

WeChatアプレットでQRコードを識別するために長押しする実装プロセス

序文公式アカウントのQRコードは長押しで認識できることは皆さんご存じですが、ミニプログラムに対する制...

MySQLでグローバル変数とセッション変数を設定する2つの方法の詳細な説明

1. MySQL でグローバル変数を変更するには 2 つの方法があります。方法 1: my.ini ...

要素シャトルフレームのパフォーマンス最適化の実装

目次背景解決新しい質問高度な背景シャトル ボックスが大量のデータを処理すると、レンダリングされる D...

フロントエンドAIカットのコツ(体験談)

AI 画像の切り取りは PS と連携する必要があります。まず、スライスするレイヤーを選択し、それを...

jQueryはシャトルボックス機能を実現する

この記事では、シャトルボックス機能を実現するためのjQueryの具体的なコードを参考までに紹介します...

MySQL の挿入およびバッチ ステートメントのいくつかの例の詳細な説明

目次序文1.無視を挿入2. 重複キーの更新時3. を置き換える4.存在しない場合は挿入する5. デー...

Linux centos7 環境での MySQL インストール チュートリアル

Linux centos7 環境に MySQL をインストールする手順の詳細な紹介MySQLをインス...

Javascript イベントキャプチャとバブリングメソッドの詳細な説明

目次1. イベント処理モデル1. イベントバブリング(1)3つのdiv要素にイベントをバインドする(...