Methode: 1. Setzen Sie „dislpay:inline-block“ auf beide Box-Elemente. 2. Setzen Sie beide Box-Elemente auf Float. 3. Das linke Element mit fester Breite wird auf „Margin-Left“ gesetzt. und der Wert ist größer als die feste Breite des Elements 4. Floating + BFC 5. Absolute Positionierung + Rand links usw.
Die Betriebsumgebung dieses Tutorials: Windows7-System, CSS3- und HTML5-Version, Dell G3-Computer.
Es gibt zwei Arten von zweispaltigen Layouts: eines mit fester Breite auf der linken und adaptives auf der rechten Seite und das andere mit adaptiver Breite in beiden Spalten (das Das heißt, die Breite auf der linken Seite wird vom untergeordneten Element bestimmt und der verbleibende Raum wird auf der rechten Seite ausgefüllt. CSS-Interviewfragen sind häufige Testfragen und auch Fähigkeiten, die ein Front-End-Entwicklungsingenieur beherrschen muss. Die Implementierungsmethoden werden im Folgenden vorgestellt.
Prinzip: Um den Einfluss von HTML-Leerzeichen zu eliminieren, muss die Schriftgröße des übergeordneten Elements festgelegt werden auf 0 gesetzt, und die rechte Seite muss auf 0 gesetzt werden. Die Breite des adaptiven Elements wird mit der Berechnungsfunktion berechnet. Wenn die Höhen der beiden Elemente unterschiedlich sind, können Sie die vertikale Ausrichtung: oben für die Elemente festlegen.
Nachteile: Da die Schriftgröße des übergeordneten Elements auf 0 eingestellt ist, wird der Text im untergeordneten Element nicht angezeigt.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> *{ padding: 0; margin: 0; } .box{ height: 600px; width: 100%; font-size:0; } .left{ display: inline-block; width: 100px; height: 200px; background-color: red; vertical-align: top; } .right{ display: inline-block; width: calc(100% - 100px); height: 400px; background-color: blue; vertical-align: top; } </style> </head> <body> <div class="box"> <div class="left"> <span>1234</span> </div> <div class="right"> <span>1234</span> </div> </div> </body> </html>
Nachteile: Das übergeordnete Element muss den Float löschen
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> *{ padding: 0; margin: 0; } .box{ height: 600px; width: 100%; } .left{ float: left; width: 100px; height: 200px; background-color: red; } .right{ float: left; width: calc(100% - 100px); height: 400px; background-color: blue; } </style> </head> <body> <div class="box"> <div class="left"> <span> 123adadadddddddddddddddddddddddddddddddddddddddd </span> </div> <div class="right"></div> </div> </body> </html>
3. Float + Rand
Nachteile: Das übergeordnete Element muss den Float löschen. 4. Floating + BFC. Prinzip: Das übergeordnete Element legt den Überlauf fest: versteckt, links overflow:auto to create BFC
Nachteil: Wenn der Inhalt des linken Elements die eingestellte Breite überschreitet, überlappt er das rechte Element
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> *{ padding: 0; margin: 0; } .box{ height: 600px; width: 100%; } .left{ float: left; width: 100px; height: 200px; background-color: red; } .right{ margin-left: 100px; height: 400px; background-color: blue; } </style> </head> <body> <div class="box"> <div class="left"> <p>1234</p> </div> <div class="right"> <p>1234</p> </div> </div> </body> </html>
Prinzip: Das übergeordnete Element ist relativ positioniert, das linke Element ist absolut positioniert und das rechte adaptive Element legt den Wert für den linken Rand so fest, dass er größer ist als die Breite des Elements mit fester Breite.
Nachteile: Das übergeordnete Element ist auf relativ eingestellt Positionierung
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> *{ padding: 0; margin: 0; } .box{ height: 600px; width: 100%; overflow: hidden; } .left{ float: left; width: 100px; height: 200px; background-color: red; } .right{ overflow: auto; height: 400px; background-color: blue; } </style> </head> <body> <div class="box"> <div class="left">111111111111111111111111</div> <div class="right">111111111111111111111111111111111111111111111</div> </div> <div class="right"></div> </body> </html>
Prinzip: Anzeige übergeordneter Elementsätze: Flex, adaptive Elementsätze Flex: 1
Nachteile: Es gibt Kompatibilitätsprobleme, die unter IE10 nicht unterstützt werden
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> *{ padding: 0; margin: 0; } .box{ height: 600px; width: 100%; position: relative; } .left{ position: absolute; width: 100px; height: 200px; background-color: red; } .right{ margin-left: 100px; height: 400px; background-color: blue; } </style> </head> <body> <div class="box"> <div class="left"></div> <div class="right"></div> </div> </body> </html>
1. Floating + BFC
Das Prinzip ist das gleiche wie oben, außer dass die Breite des linken Elements nicht festgelegt ist und durch die untergeordneten Elemente gestreckt wird
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> *{ padding: 0; margin: 0; } .box{ height: 600px; width: 100%; display: flex; } .left{ width: 100px; height: 200px; background-color: red; } .right{ flex: 1; height: 400px; background-color: blue; } </style> </head> <body> <div class="box"> <div class="left"></div> <div class="right"></div> </div> </body> </html>
Nachteile: Die Kompatibilität ist zu schlecht, IE11 wird nicht unterstützt. Es kann nur Google 57 oder höher verwendet werden
Das obige ist der detaillierte Inhalt vonSo implementieren Sie ein zweispaltiges Layout in CSS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!