Heim > Web-Frontend > CSS-Tutorial > Wie kann ich Divs mithilfe der CSS-Flexbox basierend auf der Bildschirmbreite neu anordnen?

Wie kann ich Divs mithilfe der CSS-Flexbox basierend auf der Bildschirmbreite neu anordnen?

Susan Sarandon
Freigeben: 2024-12-16 11:57:11
Original
770 Leute haben es durchsucht

How Can I Reorder Divs Using CSS Flexbox Based on Screen Width?

Div-Reihenfolge mit CSS ändern, abhängig von der Gerätebreite

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; }
}
Nach dem Login kopieren
<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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage