Bei der Erstellung responsiver Websites kann es hilfreich sein, das gewünschte Layout über verschiedene Geräte hinweg beizubehalten eine Herausforderung. Ein solches Problem ist die Neuanordnung von Divs, wenn sich die Bildschirmgröße ändert. Während es auf kleineren Bildschirmen einfach ist, Divs vertikal zu stapeln, kann es komplexer sein, sie je nach Layout unterschiedlich anzuordnen.
Betrachten wir beispielsweise ein Szenario mit zwei Spalten mit Divs. Auf größeren Bildschirmen werden Divs horizontal angezeigt, aber wenn die Bildschirmbreite kleiner wird, werden sie vertikal gestapelt. Wir benötigen jedoch eine bestimmte Reihenfolge für die Divs im vertikalen Layout.
Traditionell wurde für solche Aufgaben JavaScript verwendet. In diesem Szenario ist JavaScript jedoch keine Option. Daher greifen wir auf die vielseitige CSS-Flexbox-Spezifikation zurück, um unser Ziel zu erreichen.
Mithilfe der Eigenschaften „order“ und „flex-flow“ können wir ein Layout erstellen, das unseren Anforderungen entspricht. Beachten Sie, dass diese Lösung von allen Evergreen-Browsern und IE11 unterstützt wird, allerdings mit einem Herstellerpräfix für IE10.
In unserem CSS definieren wir div-Eigenschaften wie Breite, Höhe und Inline-Block-Anzeige. Außerdem weisen wir jedem Div Farbklassen zu.
Als nächstes definieren wir eine Medienabfrage, die aktiviert wird, wenn die Bildschirmbreite unter 531 Pixel fällt. Innerhalb dieser Abfrage ändern wir die Anzeigeeigenschaften des Containers in „Flex“ und „Spalte“, um sicherzustellen, dass die Divs auf schmaleren Bildschirmen vertikal gestapelt werden.
Dann geben wir die Reihenfolge an, in der die Divs in der Vertikalen erscheinen sollen Layout. Mit der Eigenschaft „order“ weisen wir Divs, die oben im vertikalen Stapel erscheinen sollen, einen höheren Ordnungswert zu.
Hier ist ein anschauliches Beispiel:
.container div { width: 100px; height: 50px; display: inline-block; } .one { background: red; } .two { background: orange; } .three { background: yellow; } .four { background: green; } .five { background: blue; } @media screen and (max-width: 531px) { .container { display: flex; flex-flow: column; } .five { order: 1; } .four { order: 2; } .three { order: 3; } .two { order: 4; } .one { order: 5; } }
<div class="container"> <div class="one">I'm first</div> <div class="two">I'm second</div> <div class="three">I'm third</div> <div class="four">I'm fourth</div> <div class="five">I'm fifth</div> </div>
Das obige ist der detaillierte Inhalt vonWie kann ich Divs mithilfe der CSS-Flexbox basierend auf der Bildschirmbreite neu anordnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!