2

レイアウト マネージャーの仕組み (レイアウト マネージャーの内部) に関する情報を含むページへの回答またはリンクを入力しますか?

一般的に。ブラウザに 2D (法線) コンポーネントを配置するため。javascriptでアプリケーションフレームワークのレイアウトマネージャーを構築したい

4

1 に答える 1

3

私があなたの質問を理解していると仮定すると、レイアウトマネージャーが実行する典型的なタスクは次のとおりです。

  • 各レイアウト コンポーネントの位置情報を追跡します。ブラウザーでは、css の位置関係を上、左、絶対、相対などにマッピングできるという意味まで行くことができます。マージン、パディング、ボーダーなどの影響を含みます。

  • これは同じポイントと見なされる場合がありますが、レイヤー (通常はこの場合は z-index) を追跡することも重要です。

  • 形状情報の追跡、通常はボックスの高さと幅
  • スクリプト、アニメーション、フォーム、埋め込みなどの「アクティブな要素」を持つコンポーネントを追跡する
  • 特定の要件を持つ他のコンポーネントにアタッチする必要があるコンポーネントと、自己完結型でウィジェットのようなコンポーネントを追跡します
  • 多くの場合、スタイリング プロパティや特定のレイアウト コンポーネント内のコンテンツを動的に更新する機能
  • 1 つまたは複数の他のレイアウト コンポーネントのプロパティに基づいて、1 つのレイアウト コンポーネントの追跡されたプロパティを再配置、整列、サイズ変更、およびその他の方法で調整する機能を提供する

これを処理できる場合は、良いスタートを切ることができます。テンプレートまたはスキーマに基づいて再配置できるレイアウト形式を設計することで、さらに一歩進めることができることも非常に便利です。


更新:どのサイズが優先されるかについては、あなたが何を探しているのかわかりません. すでに JavaScript を使用している場合は、クロスブラウザーを維持するために、css に沿って最小幅と最大幅の間の幅を動的に維持することをお勧めします。ノード構造の読み取りとその処理は、多少の好み問題であり、設計の問題です。私自身の経験では、ノードの最も子の「レイヤー」、特にすべてのコンテンツ保持ノードをコードの一部に抽象化し、最も親のノードを別の部分に抽象化すると便利です。これらは厳密には上部ノードと下部ノードではありませんが、一部のコンテンツにはサブノードがあるため、<b> たとえばタグ。その後、コンテナーの別の抽象化を行い、最終的にこれら 3 つのレイヤーの関係を使用してすべてのノードを説明します。

em、ex などの相対的な長さまたはパーセンテージを使用して「メイン」要素を配置し、<div style="position: relative">ラッパーで子の絶対配置を使用するか、余白を使用して相対的な長さから追加または減算することでフォローアップする場合、..さまざまなブラウザーさまざまなエンドユーザーの画面解像度で、厳密に一致する表示を生成できます。

また、リファレンスとして基本的な HTML/CSS デザインのベスト プラクティスを参照し、それらを簡単に実装してみてください。

于 2011-02-04T10:27:29.817 に答える