Heim >Web-Frontend >CSS-Tutorial >Wie erstelle ich ein flüssiges 3- bis 1-Spalten-Layout ohne Medienabfragen?

Wie erstelle ich ein flüssiges 3- bis 1-Spalten-Layout ohne Medienabfragen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-15 07:17:02670Durchsuche

How to Create a Fluid 3-Column to 1-Column Layout Without Media Queries?

Ohne Medienabfragen: Erreichen eines flüssigen 3-Spalten-Desktop- und 1-Spalten-Mobillayouts

Traditionelle Medienabfragen spielen eine entscheidende Rolle bei der Anpassung Website-Layouts für verschiedene Bildschirmgrößen. Um jedoch ein wirklich flüssiges und ansprechendes Design zu erstellen, besteht der Wunsch, alternative Lösungen zu erkunden, die Medienabfragen überflüssig machen.

Stellen Sie sich eine Website mit einem 3-Spalten-Layout auf Desktops vor:

   |  |  |
---| ---| ---|
| 1 | 2 | 3 |

Auf Mobilgeräten sollte sich das Layout jedoch in eine einzelne Spalte verwandeln:

|
---|
| 1 |
| 2 |
| 3 |

Um dies dynamisch zu erreichen, ist CSS leistungsstark Funktionen kommen zur Rettung:

Gitter und Klammer

.grid-wrapper {
   display: grid;
   gap: 15px;
   grid-template-columns: repeat(clamp(1, calc(100% - 500px), 3), 33%);
}

Die Funktion „repeat()“ erstellt eine bestimmte Anzahl von Spalten und „clamp()“ sorgt für ein Minimum 1 Spalte, wenn das Ansichtsfenster unter 500 Pixel verkleinert wird.

Flexbox und Negativ Rand

.flex-container {
   display: flex;
   flex-direction: row;
}

.flex-item {
   width: 33%; /* initial width */
   margin-right: -15px; /* negative margin to facilitate overlapping */
   background-color: red;
}

/* Breakpoint rule for smaller screens */
@media screen and (max-width: 500px) {
   .flex-item {
      margin-right: 0; /* remove negative margin on mobile */
   }
}

Dieser Ansatz stellt sicher, dass Elemente auf größeren Bildschirmen nebeneinander ausgerichtet werden, auf schmaleren jedoch vertikal gestapelt werden. Der negative Rand führt zunächst zu Überlappungen, die durch Entfernen auf kleineren Bildschirmen korrigiert werden.

Fazit

Durch die Nutzung von Raster, Klemme, Flexbox und negativen Rändern ist dies möglich um flüssige Layouts zu erstellen, die sich nahtlos zwischen mehreren Spalten und einer einzelnen Spalte anpassen, sodass keine Medienabfragen für grundlegende Layoutänderungen erforderlich sind.

Das obige ist der detaillierte Inhalt vonWie erstelle ich ein flüssiges 3- bis 1-Spalten-Layout ohne Medienabfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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