Heim Web-Frontend CSS-Tutorial Gruppierung der Auswahllistenelemente zusammen mit CSS Grid

Gruppierung der Auswahllistenelemente zusammen mit CSS Grid

Mar 07, 2025 pm 04:36 PM

Grouping Selection List Items Together With CSS Grid

gruppieren Sie die ausgewählten Listenelemente geschickt über CSS Grid, um die Benutzererfahrung zu verbessern! Die ausgewählte Elementgruppierung ist eine gemeinsame Designstrategie, mit der Benutzer ausgewählte und nicht ausgewählte Elemente schnell unterscheiden können. In der To-Do-Liste werden beispielsweise die abgeschlossenen Elemente nach oben bewegen, sodass Benutzer sich auf die verbleibenden Aufgaben konzentrieren können.

Wir werden eine ähnliche Gruppierungs -Benutzeroberfläche entwerfen. Im Gegensatz zur einfachen Umlagerung ausgewählter Elemente verwenden wir das CSS -Netz, um die ausgewählten Elemente horizontal zu lagern, um zwischen ausgewählten und nicht ausgewählten Elementen weiter zu unterscheiden.

Wir werden zwei Methoden untersuchen. Einer verwendet auto-fill, was für Situationen geeignet ist, in denen das ausgewählte Element die Grenze des Gitterbehälters nicht überschreitet, was ein stabiles Layout sicherstellt. span

Der HTML -Code der beiden Methoden ist gleich:

Der Code
Nach dem Login kopieren
Nach dem Login kopieren
    <li> <li>
besteht aus einer ungeordneten Liste (

). Wir müssen die Elemente nicht zusätzlich einwickeln, da das CSS -Netzattribut das Projektlayout bestimmt. Beachten Sie, dass ich implizite <ul></ul> Elemente zum Wickeln verwende und zusätzliche Verpackungen vermeiden kann. Explizite Tags werden jedoch normalerweise stärker von assistiven Technologien unterstützt. <label></label>

Methode 1: Verwenden Sie auto-fill

ul {
  width: 250px;
  display: grid;
  gap: 14px 10px;
  grid-template-columns: repeat(auto-fill, 40px);
  justify-content: center;
  /* ...其他样式... */
}
Nach dem Login kopieren
Das Element

, das das Listenelement enthält, wird auf <ul></ul> gesetzt, um es zu einem Gitterbehälter zu machen. Es legt eine Lücke von 14px und 10px zwischen Gitterzeilen und Spalten. Der Netzinhalt ist horizontal auf das Zentrum ausgerichtet. Die Eigenschaft display: grid gibt die Größe der Spalten im Raster an. Im Anfangszustand befinden sich alle Elemente in einer einzigen Spalte. Sobald die Elemente ausgewählt sind, wechseln sie in die erste Zeile, wobei jedes ausgewählte Element eine Spalte besetzt. Der Schlüssel liegt im Wert. grid-template-columns Der Wert auto-fill

wird für die Anzahl der Wiederholungen der

-Funktion verwendet. Es stellt sicher, dass die Spalten wiederholt werden. Jede Spalte hat die in auto-fill (40px) angegebene Spurgröße und kann sich an die Grenzen des Gitterbehälters anpassen. repeat() repeat() Um sicherzustellen, dass der anfängliche Status des Listelements eine einzelne Spalte ist:

Wenn das Element ausgewählt ist (das Element
li {
  width: inherit;
  grid-column: 1;
  /* 等同于:grid-column-start: 1; grid-column-end: auto; */
  /* ...其他样式... */
}
Nach dem Login kopieren
ist ausgewählt), verwenden Sie den

-Alektor: <input> :has(:checked)

Dies führt dazu, dass die ausgewählten Elemente ganz oben auf der Liste gruppiert und horizontal angeordnet werden.
li {
  width: inherit;
  grid-column: 1;
  /* ...其他样式... */
  &:has(:checked) {
    grid-area: 1;
    /* 等同于:grid-row-start: 1; grid-column-start: auto; grid-row-end: auto; grid-column-end: auto; */
    width: 40px;
    /* ...其他样式... */
  }
  /* ...其他样式... */
}
Nach dem Login kopieren

Methode 2: Verwenden Sie das Schlüsselwort

span Diese Methode erfordert nicht das Attribut

. Der neue

-Stil lautet wie folgt: grid-template-columns <ul></ul>

ul {
  width: 250px;
  display: grid;
  gap: 14px 10px;
  justify-content: center;
  justify-items: center;
  /* ...其他样式... */
}
Nach dem Login kopieren
hilft bei der Ausrichtung der Rasterelemente. Aktualisiert

Stil: justify-items: center <li>

Jedes Element wird in der ersten Spalte platziert, aber jetzt umfassen sie auch sechs Spaltenspuren (weil es sechs Elemente gibt). Dies stellt sicher, dass wenn mehrere Spalten im Raster angezeigt werden, nicht ausgewählte Elemente nach dem ausgewählten Element unterhalb des ausgewählten Elements einzeln bleiben - die nicht ausgewählten Elemente umfassen jetzt mehrere Spaltenspuren.
li {
  width: inherit;
  grid-column: 1 / span 6;
  /* 等同于:grid-column-start: 1; grid-column-end: span 6; */
  /* ...其他样式... */
}
Nach dem Login kopieren
Die Erklärung hält die Gegenstände zentriert.

justify-items: center

Die Breite des ausgewählten Elements wurde erhöht, um das Layout der ausgewählten Benutzeroberfläche anzuzeigen, wenn der Artikel überläuft, den der Container ausgewählt ist.
li {
  width: inherit;
  grid-column: 1 / span 6;
  /* ...其他样式... */
  &:has(:checked) {
    grid-area: 1;
    width: 120px;
    /* ...其他样式... */
  }
  /* ...其他样式... */
}
Nach dem Login kopieren

Wählen Sie die Bestellung

aus

Die Reihenfolge ausgewählter und nicht ausgewählter Elemente bleibt mit der Quellreihenfolge übereinstimmend. Wenn die Bildschirmreihenfolge für die Auswahl der Benutzer übereinstimmt, wird der inkrementierte Bestellwert dynamisch zugewiesen, wenn das Element ausgewählt ist.

Nach dem Login kopieren
Nach dem Login kopieren
    <li> <li>

Zusammenfassung

CSS -Gitter macht beide Methoden ohne viel Konfiguration sehr flexibel. Durch das Platzieren von Elementen entweder auf Achse (Zeile oder Spalte) mit auto-fill können Sie ausgewählte Elemente problemlos in Gitterbehälter gruppieren, ohne das Layout nicht ausgewählter Elemente im selben Container zu beeinflussen, solange die ausgewählten Elemente den Container nicht überfüllen.

Wenn das Element den Container überläuft, hilft die Verwendung der span -Methode, das Layout unabhängig von der Länge des ausgewählten Elements auf der angegebenen Achse beizubehalten. Einige Designalternativen zur Benutzeroberfläche umfassen die Gruppierung ausgewählter Elemente bis zum Ende einer Liste oder das Austausch horizontaler und vertikaler Strukturen.

Das obige ist der detaillierte Inhalt vonGruppierung der Auswahllistenelemente zusammen mit CSS Grid. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Gestapelte Karten mit klebriger Positionierung und einem Schuss Sass Gestapelte Karten mit klebriger Positionierung und einem Schuss Sass Apr 03, 2025 am 10:30 AM

Neulich habe ich dieses besonders schöne Stück von der Website von Corey Ginnivan entdeckt, auf der eine Sammlung von Karten aufeinander stapelt.

Google -Schriftarten variable Schriftarten Google -Schriftarten variable Schriftarten Apr 09, 2025 am 10:42 AM

Ich sehe, dass Google -Schriftarten ein neues Design (Tweet) ausgelöst haben. Im Vergleich zur letzten großen Neugestaltung fühlt sich dies viel iterativer an. Ich kann den Unterschied kaum erkennen

So erstellen Sie einen animierten Countdown -Timer mit HTML, CSS und JavaScript So erstellen Sie einen animierten Countdown -Timer mit HTML, CSS und JavaScript Apr 11, 2025 am 11:29 AM

Haben Sie jemals einen Countdown -Timer für ein Projekt benötigt? Für so etwas ist es möglicherweise natürlich, nach einem Plugin zu greifen, aber es ist tatsächlich viel mehr

Warum werden die lila abgeschnittenen Bereiche im Flex -Layout fälschlicherweise als 'Überlaufraum' betrachtet? Warum werden die lila abgeschnittenen Bereiche im Flex -Layout fälschlicherweise als 'Überlaufraum' betrachtet? Apr 05, 2025 pm 05:51 PM

Fragen zu lila Schrägstrichen in Flex -Layouts Bei der Verwendung von Flex -Layouts können Sie auf einige verwirrende Phänomene stoßen, wie beispielsweise in den Entwicklerwerkzeugen (D ...

Wie wähle ich ein untergeordnetes Element mit dem erstklassigen Namen über CSS aus? Wie wähle ich ein untergeordnetes Element mit dem erstklassigen Namen über CSS aus? Apr 05, 2025 pm 11:24 PM

Wenn die Anzahl der Elemente nicht festgelegt ist, wählen Sie das erste untergeordnete Element des angegebenen Klassennamens über CSS aus. Bei der Verarbeitung der HTML -Struktur begegnen Sie häufig auf verschiedene Elemente ...

HTML -Datenattributehandbuch HTML -Datenattributehandbuch Apr 11, 2025 am 11:50 AM

Alles, was Sie schon immer über Datenattribute in HTML, CSS und JavaScript wissen wollten.

Ein Beweis für das Konzept, um Sass schneller zu machen Ein Beweis für das Konzept, um Sass schneller zu machen Apr 16, 2025 am 10:38 AM

Zu Beginn eines neuen Projekts erfolgt die SASS -Zusammenstellung im Blinzeln eines Auges. Dies fühlt sich gut an, besonders wenn es mit Browsersync kombiniert ist, das nachlädt

See all articles