Dieses Mal werde ich Ihnen das dreispaltige Layout von CSS ausführlich erklären. Was sind die Vorsichtsmaßnahmen für das dreispaltige Layout von CSS? .
Dieser Artikel stellt das klassische CSS-Layout mit drei Spalten vor. Teilen Sie es mit allen und machen Sie sich eine Notiz: Dreispaltiges Layout , ist beidseitig fest und in der Mitte adaptiv. Dreispaltiges Layout ist in der Entwicklung sehr verbreitet1. Float-Layout
Das einfachste dreispaltige Layout ist die Verwendung von Float als Layout. Zeichnen Sie zunächst die linke und rechte Spalte:<style> .left { float: left; width: 100px; height: 200px; background-color: red; } .right { float: right; width: 100px; height: 200px; background-color: yellow; } </style> <p class="container"> <p class="left"></p> <p class="right"></p> <p class="main"></p> </p>
Als Nächstes Schauen wir uns an, wie man mit der mittleren Spalte umgeht. Wir wissen, dass Float-Elemente aus dem Dokumentenfluss ausbrechen und andere Boxen dieses Element ignorieren. (Aber der Text in anderen Feldern macht immer noch Platz für dieses Element und umgibt es.) Zu diesem Zeitpunkt müssen Sie also nur ein normales p in den Container-Container einfügen, das links und rechts ignoriert und den gesamten Container ausfüllt. Nur zusätzlich kann der Rand links und rechts aus dem Raum herausfließen:
<style> .left { float: left; width: 100px; height: 200px; background-color: red; } .right { float: right; width: 100px; height: 200px; background-color: yellow; } .main { background-color: green; height: 200px; margin-left: 120px; margin-right: 120px; } .container { border: 1px solid black; } <p class="container"> <p class="left"></p> <p class="right"></p> <p class="main"></p> </p>
Vorteile: Einfach Nachteile: Der Mittelteil wird zuletzt geladen, was Auswirkungen hat, wenn viel Inhalt vorhanden ist. Erfahrung
2. BFC-Regeln (Blockformatierungskontext) legen fest, dass sich BFC nicht mit ihnen überschneidet schwebende Elemente. Wenn Sie also das Hauptelement als BFC-Element festlegen:
3. Holy Grail Layout
<style> .left { float: left; width: 100px; height: 200px; background-color: red; } .right { float: right; width: 100px; height: 200px; background-color: yellow; } .main { background-color: green; height: 200px; overflow: hidden; } <p class="container"> <p class="left"></p> <p class="right"></p> <p class="main"></p> </p>
Der Kern des Holy Grail Layouts ist die linke, mittlere und rechte Spalten Sie werden alle durch Float verschoben und dann durch negative Marge angepasst. Der erste Schritt besteht darin, einen Blick auf das Grundlayout zu werfen
<style> .left { float: left; width: 100px; height: 200px; background-color: red; } .right { float: left; width: 100px; height: 200px; background-color: yellow; } .main { float: left; width: 100%; height: 200px; background-color: blue; } </style> <body> <p class="container"> <p class="main"></p> <p class="left"></p> <p class="right"></p> </p> </body>
.left { float: left; width: 100px; height: 200px; margin-left: -100%; background-color: red; } .right { float: left; width: 100px; height: 200px; margin-left: -100px; background-color: yellow; }
Allerdings ist es noch nicht fertig. Versuchen wir, Text zum Haupttext hinzuzufügen:
<body> <p class="container"> <p class="main">fjlskdjflkasjdfljasdljlsjdljsdjflksadj</p> <p class="left"></p> <p class="right"></p> </p> </body>
Der dritte Schritt besteht darin, dem Container eine Polsterung zu geben. Die Polsterung sollte genau der Breite der linken und rechten Spalte entsprechen:
Die Ergebnisse, die Sie zu diesem Zeitpunkt sehen, sind Die linke, mittlere und rechte Spalte sind insgesamt verkleinert, der Text wird jedoch weiterhin unterdrückt..container { padding-left: 100px; padding-right: 100px; }
.left { float: left; width: 100px; height: 200px; margin-left: -100%; position: relative; left: -100px; background-color: red; } .right { float: left; width: 100px; height: 200px; margin-left: -100px; position: relative; right: -100px; background-color: yellow; }
4. Doppelter Nurflügler-Layout
Die ersten beiden Schritte des Doubles Das Flying-Wing-Layout ist das gleiche wie das Holy Grail-Layout, aber die Lösung für das Problem, dass Teilinhalte in der mittleren Spalte blockiert werden, ist anders: Da der Inhalt im Hauptteil blockiert wird, fügen Sie einen weiteren Inhalt hinzu Wenn Sie innerhalb von „main“ den Rand festlegen, um eine Okklusion zu vermeiden, kann das Problem gelöst werden:
Das Einzige, was zu beachten ist, ist, dass Sie nach „main“ ein Element hinzufügen müssen, um den Float zu löschen.<!DOCTYPE html> <html lang="en"> <head> <style> .main { float: left; width: 100%; } .content { height: 200px; margin-left: 110px; margin-right: 220px; background-color: green; } .main::after { display: block; content: ''; font-size: 0; height: 0; clear: both; zoom: 1; } .left { float: left; height: 200px; width: 100px; margin-left: -100%; background-color: red; } .right { width: 200px; height: 200px; float: left; margin-left: -200px; background-color: blue; } </style> </head> <body> <p class="main"> <p class="content"></p> </p> <p class="left"></p> <p class="right"></p> </body> </html>
Flex-Layout ist auch sehr einfach, um ein dreispaltiges Layout zu implementieren, aber Sie müssen darauf achten Browserkompatibilität:
Es gibt ein paar Punkte zu beachten:main要首先加载就必须写在第一位,但因为left需要显示在最左侧,所以需要设置left的order为-1
flex属性的完整写法是:flex: flex-grow flex-shrink flex-basis 。这也是flex实现三栏布局的核心,main设置flex-grow为1,说明多余空间全部给main,而空间不够时,仅缩小left right部分,同时因为指定了left right部分的flex-basis,所以指定了两者的宽度,保证其显示效果
6. 绝对定位
绝对定位的方式也比较简单,而且可以优先加载主体:
<style type="text/css"> .container { } .middle { position: absolute; left: 200px; right: 200px; height: 300px; background-color: yellow; } .left { position: absolute; left: 0px; width: 200px; height: 300px; background-color: red; } .right { position: absolute; right: 0px; width: 200px; background-color: green; height: 300px; } </style> </head> <body> <p class="container"> <p class="middle">fsdfjksdjflkasjdkfjsdkljfklsjadfkljaksdljfskljffjksldfjldsfdskjflsdjfkljsdlfjsldjfklsjdkflj</p> <p class="left"></p> <p class="right"></p> </p> </body>
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des dreispaltigen CSS-Layouts. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!