序文今日は、聖杯レイアウトとダブルウィングレイアウト、そしてそれらの違いについてお話しします。この2つの3行レイアウトは、一部の大企業のフロントエンド面接で常に頻繁にテストされるポイントです。大企業の面接の質問についてお話ししましょう。さあ、始めましょう〜 レイアウト効果2 つの 3 行レイアウトは同じ効果があり、その効果は上の図に示されています。それぞれの特徴は次のとおりです。
予備処理
(追記: この問題を解決するために、コンテンツに overflow: hidden を追加して BFC 領域を形成しました。興味のある友人は自分でそれについて学ぶことができます。もちろん、これを行わない場合は、コンテンツの高さを設定するだけです。) *{ マージン: 0; パディング: 0; } 体{ 最小幅: 600px; } #ヘッダー、#フッター{ 高さ: 50px; 幅: 100%; 背景: グレー; } #中央、#左、#右 フロート: 左; } #コンテンツ{ オーバーフロー: 非表示; } #左、#右{ 幅: 200ピクセル; 高さ: 200px; 背景: ピンク; } #真ん中{ 幅: 100%; 高さ: 200px; 背景: 黄緑; } 現在のページは次のようになっていることがわかりましたが、何が起こっているのでしょうか? 答えは簡単です。左、右、中央は一直線になるはずですが、コンテンツの幅が足りないため、左と右のボックスが押し下げられています。 それでは、これら 2 つのレイアウトと、この問題を解決する方法を見てみましょう。 聖杯レイアウトまず、コンテンツのパディングを 0 200px に設定し、各側に 200px の幅を残します。 #コンテンツ{ オーバーフロー: 非表示; パディング: 0 200px; } #左{ 左マージン:-100% ; } #右{ 左マージン: -200px; もう一度効果を見てみましょう チンチンチン、奇跡を目撃する時が来たよ〜 ダブルウィングレイアウトそれでは、二重飛行翼レイアウトがこの問題をどのように解決するかを見てみましょう。下を見に来てください ダブル ウィング レイアウトでは、中央の下に中央内側ボックスを追加し、中央のコンテンツをこのボックス内に配置します (これは何の役に立つのでしょうか? 心配しないでください。読み進めてください)。 #左{ フロート: 左; 左マージン: -100%; } #右{ フロート: 左; 左マージン: -200px; } .middle-inner{ パディング: 0 200px; } この時点で、中央のコンテンツが消えていることがわかります。このとき、前に midlle に追加した midlle-inner ボックスが役立ちます。この時点で、このボックスに 0 200px のマージンを設定するだけで、コンテンツが中央に表示されます。 .middle-inner{ マージン: 0 200px; } 効果を見る やはり大企業の面接はこんな感じの質問が多いので、今日はこれで終わりにしましょう! ! ! ! 総括する最後にまとめます。Double Wing レイアウトの本質は、実は Holy Grail レイアウトと同じです。どちらも、負のマージンを設定することで要素の配置を実現します。
完全なコードは次のとおりです。 聖杯レイアウト <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <meta http-equiv="X-UA-compatible" content="IE=edge"> <meta name="viewport" content="width=デバイス幅、初期スケール=1.0"> <title>ドキュメント</title> <link rel="スタイルシート" href="style.css"> </head> <本文> <div class="wrap"> <div id="header">ヘッダー</div> <div id="コンテンツ"> <div id="middle"> 真ん中 </div> <div id="left">左</div> <div id="right">右</div> </div> <div id="footer">フッター</div> </div> </本文> </html> *{ マージン: 0; パディング: 0; } 体{ 最小幅: 600px; } #ヘッダー、#フッター{ 高さ: 50px; 幅: 100%; 背景: グレー; } #中央、#左、#右 フロート: 左; } #コンテンツ{ オーバーフロー: 非表示; パディング: 0 200px; } #左、#右{ 幅: 200ピクセル; 高さ: 200px; 背景: ピンク; } #真ん中{ 幅: 100%; 高さ: 200px; 背景: 黄緑; } #左{ 左マージン:-100% ; 位置: 相対的; 左:-200px; } #右{ 左マージン: -200px; 位置: 相対的; 左:200px; } ダブルウィングレイアウト <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <meta http-equiv="X-UA-compatible" content="IE=edge"> <meta name="viewport" content="width=デバイス幅、初期スケール=1.0"> <title>ドキュメント</title> <link rel="スタイルシート" href="style.css"> </head> <本文> <div class="wrap"> <div id="header">ヘッダー</div> <div id="コンテンツ"> <div id="middle"> <div class="middle-inner"> 真ん中 </div> </div> <div id="left">左</div> <div id="right">右</div> </div> <div id="footer">フッター</div> </div> </本文> </html> *{ マージン: 0; パディング: 0; } 。包む{ 最小幅: 600px; } #ヘッダー、#フッター{ 高さ: 50px; 幅: 100%; 背景:グレー; } #左、#右{ 幅: 200ピクセル; 高さ: 200px; 背景: 緑; } #真ん中{ 背景: ピンク; 幅: 100%; フロート: 左; 高さ:200px; } #コンテンツ{ オーバーフロー: 非表示; } #左{ フロート: 左; 左マージン: -100%; } #右{ フロート: 左; 左マージン: -200px; } .middle-inner{ マージン: 0 200px; } インタビューで必ず聞かれる質問「ホーリー グレイル レイアウトとダブル フライング ウィング レイアウトの違い」についての記事はこれで終わりです。ホーリー グレイル レイアウトとダブル フライング ウィング レイアウトの違いについてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 |
<<: div+css3 を使用して背景グラデーション ボタンを実装するためのサンプル コード
>>: HTML 要素の高さ、offsetHeight、clientHeight、scrollTop などの詳細な説明。
目次関数パラメータの2つの主要なカテゴリ位置パラメータ可変長パラメータ名前空間要約する関数パラメータ...
目次iview-admin2.0 組み込み権限管理権限に基づいてコンポーネントの表示を制御するカスタ...
環境セントロス6.6 MySQL 5.7インストールシステムがインストールされている場合は、まずアン...
この記事では、ファイルのアップロードとダウンロード機能を実装するためのVueの具体的なコードを例とし...
画像タグは、Web ページに画像を表示するために使用されます。 HTML/XHTML 画像 <...
導入JavaScript はデフォルトでシングルスレッドであるため、コードは並列実行するための新しい...
まず、MySQL公式サイトからインストールパッケージをダウンロードします。MySQLはオープンソース...
Tomcat が自動的にサービスを開始するように設定します。最近、問題が発生しました。サーバー上のプ...
CSSは複数のクラスにマッチする次の HTML タグ li、クラスはオープン スタイルです。私の要件...
MySQL 8 は、NoSQL、JSON などのサポートなど、まったく新しいエクスペリエンスをもたら...
目次プレハブプレハブの作り方プレハブの役割1. 同じタイプのノードをバッチで作成する2. 特定の時間...
序文モバイル デバイスでは、帯域幅とプロセッサ速度の制限により、Web ページのパフォーマンスに対す...
序文スクロールやサイズ変更などのスクロール イベントがトリガーされると、トリガーの頻度が非常に高くな...
展開環境: ここでは docker コンテナ、Linux システム、VmWare 仮想マシンが使用さ...
目次1. 場所オブジェクト1. URL 2. 場所オブジェクトのプロパティ3. ロケーションオブジェ...