Implementierung eines CSS-Festlayouts auf beiden Seiten und eines adaptiven Layouts in der Mitte

Implementierung eines CSS-Festlayouts auf beiden Seiten und eines adaptiven Layouts in der Mitte

Analysieren Sie vier gängige Methoden und Prinzipien: Floating, Floating Embedded Div, Positionierung und Flex.

schweben

<style type="text/css">
    .wrap {Hintergrund: #eee; Polsterung: 20px; }
    p {Rand: 0; }
    .left {Breite: 200px; Höhe: 200px; Float: links; Hintergrund: Koralle; }
    .rechts {Breite: 200px; Höhe: 200px; Float: rechts; Hintergrund: hellblau; }
    .middle {margin: 0 200px; background: hellrosa; }
</Stil>

<div Klasse="wrap">
    <p class="left">Ich bin links</p>
    <p class="right">Ich bin rechts</p>
    <p class="middle">Ich war der Letzte in der Schlange, aber ich bin in die Mitte gerannt</p>
</div> 

Prinzip:

  • Schwebende und nicht schwebende Elemente befinden sich nicht im selben dreidimensionalen Raum. Wenn das schwebende Element nicht klar ist, schwebt das darunter liegende Element nach oben.
  • Die Höhe des schwebenden Elements beträgt 0. Die Ebene der schwebenden Box ist höher als block und niedriger als die horizontale inline/inline-block -Box.

Schwebendes Inline-Div

<style type="text/css">
    .wrap {Hintergrund: #eee; Polsterung: 20px; }
    p {Rand: 0; }
    .left {Breite: 200px; Höhe: 200px; Float: links; Hintergrund: Koralle; Rand links: -100 %;}
    .rechts {Breite: 200px; Höhe: 200px; Float: links; Hintergrund: hellblau; Rand links: -200px;}
    .middle {Breite: 100%; Höhe: 200px; Float: links; Hintergrund: hellrosa; }
    Spanne{
        Anzeige: Inline-Block;
        Rand: 0 200 px;
    }
</Stil>

<div Klasse="wrap">
    <p Klasse="Mitte">
        <span class="inner">
            Ich bin mittendrin 
    </p>
    <p class="left">Ich bin links</p>
    <p class="right">Ich bin rechts</p>
</div> 

Prinzip:

  • Alle drei Elemente sind schwebend, wobei das Designelement 100 % einer Zeile ausfüllt und negative margin verwendet werden, um die Elemente links und rechts zu platzieren.
  • Fügen Sie innerhalb des Designelements ein weiteres untergeordnetes Element mit margin: 0 200px hinzu, um zu verhindern, dass der Inhalt von den beiden schwebenden Elementen links und rechts verdeckt wird.

Position

<style type="text/css">
    .wrap {Hintergrund: #eee; Position: relativ;}
    p {Rand: 0; }
    .left {Breite: 200px; Höhe: 200px; Hintergrund: Koralle; Position: absolut;links: 0; oben: 0;}
    .right {Breite: 200px; Höhe: 200px; Hintergrund: hellblau; Position: absolut; rechts: 0; oben: 0;}
    .middle {Höhe: 200px; Hintergrund: hellrosa; Rand: 0 200px;}
</Stil>

<div Klasse="wrap">
    <p class="middle">Ich bin in der Mitte und verwende den Rand, um den von den beiden links und rechts positionierten Elementen eingenommenen Platz auszugleichen.</p>
    <p class="left">Ich bin links, ich bin ein positioniertes Element</p>
    <p class="right">Ich bin rechts, ich bin ein positioniertes Element</p>
</div> 

Prinzip:

  • Die linken und rechten Elemente können beliebig positioniert werden.
  • Das mittlere Element verwendet margin: 0 200px um zu verhindern, dass der Inhalt unter die beiden links und rechts positionierten Elemente läuft und verdeckt wird.

biegen

<style type="text/css">
    .wrap {Hintergrund: #eee; Anzeige: flex}
    p {Rand: 0; }
    .left {Breite: 200px; Höhe: 200px; Hintergrund: Koralle; }
    .rechts {Breite: 200px; Höhe: 200px; Hintergrund: hellblau; }
    .middle {Höhe: 200px; Hintergrund: hellrosa; Flex: 1;}
</Stil>

<div Klasse="wrap">
    <p class="left">Ich bin links</p>
    <p class="middle">Ich bin in der Mitte, flex:1 nimmt automatisch den restlichen Platz ein</p>
    <p class="right">Ich bin rechts</p>
</div>

Prinzip:

  • Im flex -Layout werden untergeordnete Elemente standardmäßig horizontal angeordnet.
  • flex: 0 1 auto -> Standardmäßig folgt der belegte Platz nicht der Ausdehnung des übergeordneten Elements, sondern der Verkleinerung, der ursprünglichen Breite
  • flex: 1 1 auto -> auto, der belegte Platz folgt dem übergeordneten Element beim Erweitern und Verkleinern und der ursprünglichen Breite
  • flex: 0 0 auto -> keine, der belegte Platz folgt weder der Ausdehnung des übergeordneten Elements noch der Verkleinerung, der ursprünglichen Breite
  • flex: 1 1 1 -> auto, der belegte Raum folgt der Ausdehnung des übergeordneten Elements und folgt gleichzeitig der Verkleinerung und füllt automatisch den verbleibenden Raum aus.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

<<:  Warum MySQL-Datenbanken NULL so weit wie möglich vermeiden

>>:  202 kostenlose, hochwertige XHTML-Vorlagen (2)

Artikel empfehlen

Reines CSS, um coole Neonlichteffekte zu erzielen (mit Demo)

Ich habe kürzlich die Tutorial-Reihe zu CSS-Anima...

So implementieren Sie die Unschärfefunktion von DIV

Verwenden Sie Anti-Shake, um DIV verschwinden zu ...

Einführung in CSS-Stileinführungsmethoden und ihre Vor- und Nachteile

Drei Möglichkeiten, CSS einzuführen 1. Inline-Sti...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.16 winx64

Ich habe erst vor Kurzem angefangen, mich mit Dat...

So bedienen Sie JSON-Felder in MySQL

MySQL 5.7.8 führte das JSON-Feld ein. Dieser Feld...

So beheben Sie Dateisystemfehler in Linux mit „fsck“

Vorwort Das Dateisystem ist für die Organisation ...

Front-End-JavaScript versteht Funktions-Currying gründlich

Inhaltsverzeichnis 1. Was ist Curry 2. Verwendung...

Verwenden Sie HTML und CSS, um Ihren eigenen warmen Mann „Dabai“ zu erstellen.

Das Endergebnis sieht so aus, ist es nicht süß … ...

So konfigurieren Sie einfach mehrere Server in Nginx

1: Ich werde nicht näher auf die Installation von...

Tutorial zur Installation von JDK und Tomcat unter Linux CentOS

Laden Sie zuerst JDK herunter. Hier verwenden wir...

Analyse des rel-Attributs in HTML

.y { background: url(//img.jbzj.com/images/o_y.pn...

Welche Vorteile bietet die Verwendung eines B+-Baums als Indexstruktur in MySQL?

Vorwort In MySQL verwenden sowohl Innodb als auch...