Web デザインにおけるツリーとは何ですか?簡単に言うと、リンクをクリックするとサブディレクトリが展開され、もう一度クリックすると閉じます。これは最も単純なツリーです。実装方法も非常に簡単です。CSS には display プロパティがあり、コンテンツを表示するかどうかを制御できます。次に、JS を使用して CSS のプロパティを制御してこれを実現します。次のコードを参照してください。 <div>最上位ディレクトリ</div> <div id="メニューリスト"> <div>メニュー 1</div> <div>メニュー 2</div> <div>メニュー 3</div> </div> これはツリーのプロトタイプです。もちろん、初期状態では CSS 表示属性が追加されます。最もよく使用される表示属性は none と block です。 Noneは表示なしを意味し、blockはブロック型要素のように表示されます。コードを見てみましょう。 <div>最上位ディレクトリ</div> <div id="メニューリスト" style="display:none"> <div>メニュー 1</div> <div>メニュー 2</div> <div>メニュー 3</div> </div> このように、ページを実行すると、最上位のディレクトリのみが表示されます。これを制御したい場合は、jsコードを追加する必要があります。 1. まずメニューリストを取得する var メニューリスト = document.getElementById("メニューリスト"); 2. オブジェクトはCSSプロパティを制御できる メニューリスト.style.display="ブロック"; 判断を加える (menulist.style.display="none") の場合 menulist.style.display="ブロック"; それ以外 メニューリスト.style.display="なし"; このようにして、最も原始的なツリーが生成され、最終的なコードは <スクリプト> 関数 showmenu() { var メニューリスト = document.getElementById("メニューリスト"); (menulist.style.display=="none") の場合 メニューリスト.style.display="ブロック"; それ以外 メニューリスト.style.display="なし"; } </スクリプト> <div オン click="showmenu();">トップディレクトリ</div> <div id="メニューリスト" style="display:none"> <div>メニュー 1</div> <div>メニュー 2</div> <div>メニュー 3</div> </div> 私は長い間、この方法を使用してプロパティ ディレクトリを作成してきました。ディレクトリがどんなに複雑であっても、この方法は毎回機能しました。次のスクリーンショットは、IE で作成したより複雑なツリー ディレクトリの実行効果を示しています。 ![]() ![]() ひどいことが起こりました。Chrome ですべてがめちゃくちゃに見えました。情報検索をした後、ようやく理由がわかりました。block と none に加えて、display には他の多くの属性があります。block はブロックで表示され、レイアウトにはテーブルを使用しました。table と block に深い嫌悪感があるかどうかは神のみぞ知るところです。Microsoft は彼らの嫌悪感を無視するのが賢明だと考えていますが、Chrome は依然として標準に誠実に従っており、Firefox も同様です。したがって、彼らの説明にはまだ問題があります。この問題を解決する方法: Display には、コンテンツをテーブル形式でレンダリングする table-cell というプロパティもあります。これは、レイアウトにテーブルを使用する場合にまさにやりたいことです。以下は、3 つのブラウザーの互換性のあるレンダリングです。 ![]() IE6 ![]() クロム2 ![]() ファイアフォックス3.5 |
<<: React コンポーネント通信ルーティングパラメータ転送 (react-router-dom)
ハードウェア上の理由により、機械は標準時間にある程度追いつけない場合があり、その誤差は 1 か月で数...
目次1. Vue ライフサイクル2. フック機能2.1 4つの段階と8つの方法に分かれています。 2...
MySQL を学習すると、インストール後にいくつかのデフォルトのデータベースが付属していることに気付...
この記事では、例を使用して、MYSQL データベース テーブル構造を最適化する方法を説明します。ご参...
キーボード文字英語`バッククォート〜チルダ!叫ぶ@で#ナンバーサイン$ドル%パーセント^キャレット&...
導入前回の記事では、Redis をインストールして設定しましたが、まだ終わりではありません。PHP ...
1 インストールMYSQL 公式サイトから対応する解凍バージョンをダウンロードし、必要なディレクトリ...
目次chmod例権限に関する特別な注意分析するチョーンchgrp umask Linux オペレーテ...
上の境界線のみを表示する <table frame=above>下の境界線のみを表示する...
MySQL フルテキスト インデックスは、特定のテーブルの特定の列に表示されるすべての単語のリストを...
基本概念絶対配置: 絶対配置に設定された要素ボックスはドキュメント フローから完全に削除され、その包...
目次序文始めるステップトラブルシューティング序文CPU 使用率が高くなるのは、オンラインでよくある問...
前回の記事では、Navicat for Mysql 接続エラー 1251 (接続失敗) の問題を解決...
この記事では、参考までに、ビデオアップロード機能を実現するためのVueの具体的なコードを紹介します。...
操作効果コードの実装html <div id="ウォッチ"> <...