1. フローティング レイアウトを使用する
利点: 互換性が向上します。
短所: フローティング後、要素はドキュメント フローから外れます。フローティングのクリアと、フローティング要素と周囲の要素との関係を慎重に処理する必要があります。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>页面布局</title> <style> * { margin: 0; padding: 0; } .layout{ margin: 20px; } .layout article p{ min-height: 100px; } </style> </head> <body> <!-- 浮动解决方案 --> <section class="layout float"> <style> .layout.float .left{ float: left; width: 300px; background: red; } .layout.float .right{ float: right; width: 300px; background: blue; } .layout.float .center{ background: yellow; } </style> <article class="left-right-center"> <p class="left"></p> <p class="right"></p> <p class="center"> <h1>浮动解决方案</h1> 1.这是三栏布局中间部分 1.这是三栏布局中间部分 </p> </article> </section> </body> </html>
注: 注意すべき最も重要なことは、中央の列が次のとおりであることです。左右2列後ろに配置してください! ! !
2. 絶対配置レイアウトを使用する
利点: レイアウトは比較的高速です
欠点: 配置された要素はドキュメント フローの外にあるため、その子要素もドキュメント フローの外にあることを意味するため、このメソッドの使いやすさはは比較的貧弱です
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>页面布局</title> <style> * { margin: 0; padding: 0; } .layout{ margin: 20px; } .layout article p{ min-height: 100px; } </style> </head> <body> <!-- 绝对定位解决方案 --> <section class="layout absolute"> <style> .layout.absolute .left-right-center{ position: relative; } .layout.absolute .left{ position: absolute; left: 0; width: 300px; background: red; } .layout.absolute .right{ position: absolute; right: 0; width: 300px; background: blue; } .layout.absolute .center{ position: absolute; left: 300px; right: 300px; background: yellow; } </style> <article class="left-right-center"> <p class="left"></p> <p class="center"> <h2>绝对定位解决方案</h2> 1.这是三栏布局绝对定位解决方案 1.这是三栏布局绝对定位解决方案 </p> <p class="right"></p> </article> </section> </body> </html>
3. フレックス レイアウトを使用します
利点: フローティングおよび絶対配置の欠点が非常によく解決されます。現在、モバイル端末は基本的にフレックス レイアウトを使用しています
IE8 以下は flex
<section class="layout flex"> <style> .layout.flex .left-right-center{ display: flex; margin-top: 140px; } .layout.flex .left{ flex: 0 0 300px; width: 300px; background: red; } .layout.flex .right{ flex: 0 0 300px; width: 300px; background: blue; } .layout.flex .center{ flex: 1; background: yellow; } </style> <article class="left-right-center"> <p class="left"></p> <p class="center"> <h2>Flexbox解决方案</h2> 1.这是三栏布局flexbox解决方案 1.这是三栏布局flexbox解决方 </p> <p class="right"></p> </article> </section>
注: 中央の列。真ん中に置くべきです! ! !
4. テーブルレイアウトを使用する
利点: 互換性は悪くありません
欠点: 1 つの列のコンテンツの高さが増加すると、他の 2 つの列の高さも同時に増加する必要がない場合があります。時間; 検索エンジンが情報をクロールするのに役立ちません ;
<!-- 表格布局解决方案 --> <section class="layout table"> <style> .layout.table .left-right-center{ width: 100%; display: table; height: 100px; } .layout.table .left{ display: table-cell; width: 300px; background: red; } .layout.table .right{ display: table-cell; width: 300px; background: blue; } .layout.table .center{ display: table-cell; background: yellow; } </style> <article class="left-right-center"> <p class="left"></p> <p class="center"> <h2>表格布局解决方案</h2> 1.这是三栏布局表格布局解决方案 1.这是三栏布局表格布局解决方案 </p> <p class="right"></p> </article> </section>
5. グリッド レイアウト
<!-- 网格布局解决方案 --> <section class="layout grid"> <style> .layout.grid .left-right-center{ width: 100%; display: grid; grid-template-rows: 100px; grid-template-columns: 300px auto 300px; } .layout.grid .left{ background: red; } .layout.grid .right{ background: blue; } .layout.grid .center{ background: yellow; } </style> <article class="left-right-center"> <p class="left"></p> <p class="center"> <h2>网格布局解决方案</h2> 1.这是三栏布局网格布局解决方案 1.这是三栏布局网格布局解决方案 </p> <p class="right"></p> </article> </section>
既知の高さが削除されるか、高さが超過する場合
1. フレックス レイアウトの高さは適応可能です
2. テーブル レイアウト適応可能です
3. フローティング、絶対配置、グリッド レイアウトは高さに適応できません
以上がページレイアウトを調整するいくつかの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。