CSS zur Realisierung der Einzelauswahl-Faltmenüfunktion

CSS zur Realisierung der Einzelauswahl-Faltmenüfunktion

Führen Sie kein Front-End-UI-Framework ein, es sei denn, dies ist unbedingt erforderlich, da HTML5 und CSS3 die meisten Funktionen bereits implementieren können, z. B. die vorherige Ausgabe von "CSS zum Erreichen des einfachsten Switches".

dca0a8cfcb26d3cd87aed4ceeceee3b4.png

Allerdings sind viele Leute in der Denkweise noch immer im Web 2.0-Zeitalter gefangen und verwenden zur Erstellung der Benutzeroberfläche verschiedene Bibliotheken, was zu aufgeblähten Webseiten führt. Heute zeige ich Ihnen, wie Sie mit reinem CSS ein Single-Select-Faltmenü implementieren, ohne dass JavaScript erforderlich ist. Akkordeons ähneln Registerkarten. Logischerweise handelt es sich bei beiden um Einzelauswahlfelder, mit der Ausnahme, dass Akkordeons im Allgemeinen vertikal gestapelt sind, während Registerkarten horizontal angeordnet sind.

873ecdccbd4a9eda8905fa3dda8a95f3.gif

Registerkarten:

6af435a8d5daf3680c52d09d86cf2254.gif

Da es sich um eine einzelne Auswahl handelt, können Sie zur Implementierung das Optionsfeld <input type="radio">verwenden. Erstens verwendet das übergeordnete Element dieser Optionsfeldgruppen <form>, da <form> die Änderungen der Schaltflächengruppe überwachen und über das Namensattribut auch direkt die RadioNodeList-Liste abrufen und den Wert ändern kann. Dies ist sehr praktisch und es müssen keine anderen CSS-Selektoren festgelegt werden. Der HTML-Code dieses Klappmenüs lautet also wie folgt:

<Formular-ID="Formular">
    <Eingabetyp="Radio" Name="Collapse">
    <div></div>
 
    <Eingabetyp="Radio" Name="Collapse">
    <div></div>

    <Eingabetyp="Radio" Name="Collapse">
    <div></div>
</form>

Legen Sie eine ID für das <form> fest, damit es direkt über window[id] gefunden werden kann. Das Namensattribut jedes <radio> muss konsistent sein, und dann erhalten Sie die Radiogruppe über form[name]. form[name].value ist der Wert der aktuell ausgewählten Schaltfläche, der den Titel der Minimierungsschaltfläche darstellt. Auf jedes <radio> folgt ein <div>, das den Inhalt des erweiterten Menüs darstellt. Aber das Standard-<radio> sieht so aus:

3734ce405520be5e763445ce517388d4.gif

Oder verwenden Sie zuerst appearance: none, um den Standardstil wie oben gezeigt zu deaktivieren, verwenden Sie dann ::before als Namen auf der linken Seite der Schaltfläche (lesen Sie das Value-Attribut), ::after als kleinen Pfeil auf der rechten Seite (die Zeichen > und v) und verwenden Sie das Attribut :checked, um den reduzierten Status anzuzeigen.

Eingabe[Typ="Radio"] {       
      Cursor: Zeiger;
      Aussehen: keines;
      Anzeige: Block;
}
 
 
Eingabe[Typ="Radio"]::vor {
      Inhalt: attr(Wert);
}
 
 
Eingabe[Typ="Radio"]::nach {       
      schweben: rechts;
      Inhalt:">";
}
 
 
Eingabe[Typ="Radio"]:aktiviert::nach {
      Inhalt: "v";
}

Bei <div> ist es standardmäßig ausgeblendet und nur das <div> hinter dem ausgewählten <radio> wird angezeigt. Was die Faltanimation betrifft, hängt es von Ihren Anforderungen ab. Für mich wäre es ohne Animation erfrischender.

Eingabe[Typ="Radio"] + div {
      Anzeige: keine;
}
 
 
Eingabe[Typ="Radio"]:aktiviert + div {
      Anzeige: Block;
}

Oben sehen Sie das grundlegende Layout. Mit ein wenig zusätzlichem Styling wird daraus:

192e7d623a0ddedcc4811c5fab7db066.png

Aufgrund der Eigenschaften von <radio> kann das Menü jedoch nicht umgekehrt werden. Nachdem das Menü erweitert wurde, können Sie es nur durch Klicken auf ein anderes Menüelement ausblenden. Das ist natürlich in Ordnung. Wenn Sie die Funktion der umgekehrten Menüauswahl implementieren müssen, müssen Sie das zuletzt erweiterte Menüelement aufzeichnen und bei jedem Klickereignis feststellen, ob es sich um einen wiederholten Klick handelt:

// für jedes <radio>
radio.onclick = () => {
  wenn (Fenster.Radio === Radio) {
    Eingabe.geprüft = falsch;
    Fenster.Radio = null;
  } sonst window.radio = radio;
};

Dies implementiert die inverse Auswahlmöglichkeit des Single-Select-Faltmenüs:

a92c5f3b16fb6ea25513791832948417.gif

Übrigens ist der unordentliche Text im Bild das Ergebnis einer Verschlüsselung des Originaltexts (aus Datenschutzgründen). Sie können eine Zeichenfolge mit dem folgenden Code kodieren:

string.split('').sort(() => Math.random() - 0.5).join('')

Dies ist das Ende dieses Artikels über die Implementierung der Single-Choice-Faltmenüfunktion mit CSS. Weitere relevante CSS-Single-Choice-Faltmenüinhalte finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

<<:  5 Möglichkeiten, den diagonalen Kopfzeileneffekt in der Tabelle zu erzielen

>>:  Detaillierte Erläuterung des Prozessmanagements im Linux-System

Artikel empfehlen

js realisiert das dynamische Laden von Daten durch Wasserfallfluss

In diesem Artikel erfahren Sie den spezifischen C...

Implementierung der Nginx-Flusskontrolle und Zugriffskontrolle

Nginx-Verkehrskontrolle Die Ratenbegrenzung ist e...

Beispielcode zur Implementierung der olympischen Ringe mit reinem HTML+CSS

Rendern Code - Nehmen Sie die blauen und gelben R...

Verwenden Sie CSS, um zwischen dem Dunkelmodus und dem Hellmodus zu wechseln

In der fünften Ausgabe von Web Skills wird ausdrü...

So legen Sie den Fokus auf HTML-Elemente fest

Code kopieren Der Code lautet wie folgt: <Körp...

Anweisungen zur Verwendung der MySQL-IndexOF-Funktion

Wie unten dargestellt: LOCATE(Teilzeichenfolge,Ze...

Grafisches Tutorial zur kostenlosen Installationsversion von MySQL 5.7.17 winx64

Aktuelle Erfahrungen mit der Installation der kos...

Einführung in die Stammverzeichniserweiterung unter Linux

1. Überprüfen Sie den Linux-Festplattenstatus df ...

Grundlegende Verwendung von exists, in und any in MySQL

【1】existiert Verwenden Sie eine Schleife, um die ...

Informationen zu WSL-Konfigurations- und Änderungsproblemen in Docker

https://docs.microsoft.com/en-us/windows/wsl/wsl-...