Inhaltsverzeichnis
Schauen wir uns den HTML -Code an
Starten Sie Styles
Desktop
Mobile/Tablet
Heim Web-Frontend CSS-Tutorial Benutzerdefinierte Styling -Formulareingaben mit modernen CSS -Funktionen

Benutzerdefinierte Styling -Formulareingaben mit modernen CSS -Funktionen

Apr 11, 2025 am 11:45 AM

Benutzerdefinierte Styling -Formulareingaben mit modernen CSS -Funktionen

Heutzutage ist das Erstellen benutzerdefinierter Kontrollkästchen, Optionsschaltflächen und Toggle -Switches durchaus machbar, während die Semantik und Barrierefreiheit beibehalten wird. Wir brauchen nicht einmal eine Zeile von JavaScript -Code oder zusätzlichen HTML -Elementen! Eigentlich ist es in letzter Zeit einfacher als in der Vergangenheit. mal sehen.

Der endgültige Effekt ist wie folgt:

Die Dinge sind viel einfacher als zuvor!

Der Grund ist, dass wir endlich können<input> ::before und ::after Pseudo-Elementen des Tags selbst sind gestylt. Dies bedeutet, dass wir aufbewahren und einstellen können<input> Stil ohne zusätzliche Elemente. Zuvor mussten wir uns auf extra verlassen<div> oder<code><span></span> Um benutzerdefiniertes Design zu implementieren.

Schauen wir uns den HTML -Code an

Hier gibt es nichts Besonderes. Wir müssen diesen HTML -Code nur verwenden, um die Eingabe zu stylen:

<input type="checkbox" id="c1">
<input type="radio" id="r1">
<input type="checkbox" id="s1">
Nach dem Login kopieren

Hier geht es um den HTML -Teil. Natürlich wird empfohlen, name und id -Attribute sowie passende Angaben hinzuzufügen<label></label> Element:

 <label for="c1">Kontrollkästchen</label>
<input type="checkbox" id="c1">

<label for="r1">Optionsknopf</label>
<input type="radio" id="r1">

<label for="s1">schalten</label>
<input type="checkbox" id="s1" class="switch">
Nach dem Login kopieren

Starten Sie Styles

Zunächst überprüfen wir die Unterstützung für appearance: none; einschließlich seiner Präfixversion. appearance ist der Schlüssel, da es so konzipiert ist, dass es den Standardstil des Browsers aus dem Element entfernen. Wenn der Browser diese Eigenschaft nicht unterstützt, gilt der Stil nicht und der Standardeingangsstil wird angezeigt. Dies ist absolut in Ordnung und auch ein gutes Beispiel für eine allmähliche Verbesserung.

 @Supports (-webkit-upearance: keine) oder (-moz-äqulearance: Keine) {
  input [type = 'checkbox'],
  input [type = 'radio'] {
    -Webkit-Appearanz: Keine;
    -moz-apparance: Keine;
  }
}
Nach dem Login kopieren

Im Moment befindet sich appearance noch in der Arbeitsabgabephase, aber hier ist die Unterstützung:

Dieser Browser unterstützt Daten von Caniuse, die weitere Details enthält. Die Zahl zeigt an, dass der Browser diese Funktion in dieser und späteren Versionen unterstützt.

Desktop

Mobile/Tablet

Wie Links müssen wir die unterschiedlichen Interaktionszustände von Formularelementen berücksichtigen. Wir betrachten diese Zustände beim Festlegen von Elementstilen:

  • :checked
  • :hover
  • :focus
  • :disabled

Hier finden Sie beispielsweise, wie Sie unsere Umschalteingabe stylen, Knöpfe erstellen und berücksichtigen können :checked Status:

 /* Container schalten*/
.schalten {
  Breite: 38px;
  Border-Radius: 11px;
}

/* Schalterknopf*//
.switch :: nach {
  links: 2px;
  Top: 2px;
  Grenzradius: 50%;
  Breite: 15px;
  Höhe: 15px;
  Hintergrund: var (-ab, var (-Grenze));
  Transformation: Translatex (var (-x, 0));
}

/* Farbe und Position ändern, wenn er ausgewählt ist*/
.switch: überprüft {
  --ab: var (-aktiviner);
  --x: 17px;
}

/* Reduzieren Sie die Deckkraft des Kippknaufs, wenn der Eingang deaktiviert ist*/
.Switch: Deaktiviert: nicht (: überprüft) :: After {{
  Deckkraft: .6;
}
Nach dem Login kopieren

wir werden<input> Elemente werden als Behälter verwendet. Der Knopf im Eingang wird mit dem ::after Pseudoelement erstellt. Auch hier ist keine zusätzliche Markierung erforderlich!

Wenn Sie den Stil in der Demo öffnen, werden Sie feststellen, dass wir einige CSS -benutzerdefinierte Eigenschaften definieren, da dies eine großartige Möglichkeit geworden ist, wiederverwendbare Werte im Stylesheet zu verwalten:

 @Supports (-webkit-upearance: keine) oder (-moz-äqulearance: Keine) {
  input [type = 'checkbox'],
  input [type = 'radio'] {
    --aktiv: #275efe;
    --Active-Inner: #fff;
    -Fokus: 2px RGBA (39, 94, 254, .25);
    --größer: #BBC1E1;
    --Größen Sie: #275efe;
    -Background: #fff;
    -Behindert: #f6f8ff;
    -Innerhalb von Inner: #e1e6f9;
  }
}
Nach dem Login kopieren

Es gibt jedoch einen weiteren Grund, warum wir benutzerdefinierte Eigenschaften verwenden - sie sind sehr geeignet, um Werte basierend auf dem Status eines Elements zu aktualisieren! Wir werden hier nicht auf Details eingehen, aber das folgende Beispiel dafür ist ein Beispiel dafür, wie benutzerdefinierte Eigenschaften auf der Grundlage verschiedener Zustände verwendet werden.

 /* Standardwert*//
input [type = 'checkbox'],
input [type = 'radio'] {
  --aktiv: #275efe;
  --größer: #BBC1E1;
  Grenze: 1px Solid var (-BC, var (-Grenze));
}

/* Schreiben Sie den Standardwert*///
input [type = 'checkbox']: überprüft,
input [type = 'radio']: überprüft {
  --B: var (-aktiv);
  -BC: var (-aktiv);
}

/* Wenn nicht ausgewählt und nicht deaktiviert ist, wird eine andere Randfarbe angewendet, wenn sie schweben*/
input [type = 'checkbox']: nicht (: checked): nicht (: deaktiviert): schwebe,
input [type = 'radio']: nicht (: checked): nicht (: deaktiviert): hover {
  -BC: var (-Grenzhalter);
}
Nach dem Login kopieren

Für die Zugänglichkeit sollten wir benutzerdefinierte Fokusstile hinzufügen. Wir haben den Standard -Umriss entfernt, weil sie nicht wie der Rest des von uns festgelegten Stils abgerundet werden kann. box-shadow mit abgerundeten Ecken kann jedoch einen abgerundeten Eckstil erzeugen, der wie ein Umriss funktioniert.

 input [type = 'checkbox'],
input [type = 'radio'] {
  -Fokus: 2px RGBA (39, 94, 254, .25);
  Umriss: Keine;
  Übergang: Box-Shadow .2s;
}

input [type = 'CheckBox']: Fokus,
input [type = 'radio']: fokus {
  Box-Shadow: 0 0 0 var (-Fokus);
}
Nach dem Login kopieren

Sie können auch ausrichten und direkt einstellen, um in HTML zu folgen<input> Elementar<label></label> Elementstil:

 <label for="c1">Kontrollkästchen</label>
<input type="checkbox" id="c1">
Nach dem Login kopieren
input [type = 'checkbox'] label,
input [type = 'radio'] label {
  Anzeige: Inline-Block;
  vertikaler Align: Top;
  /* Andere Stile*///
}

input [type = 'checkbox']: deaktiviertes Beschriftung,
input [type = 'radio']: deaktiviertes label {
  Cursor: nicht verurteilt;
}
Nach dem Login kopieren

Zeigen Sie die Demo noch einmal:

Hoffentlich können Sie sehen, wie bequem es ist, heutzutage benutzerdefinierte Formularstile zu erstellen. Aufgrund von Pseudo-Elementen müssen weniger Aufschläge direkt in Form eines Formulareingangs erforderlich sind. Aufgrund kundenspezifischer Eigenschaften sind weniger Stilschalter erforderlich. Und dank @supports hat es ziemlich gute Browser -Unterstützung.

Alles in allem ist dies viel besser als die Entwicklungserfahrung, mit der wir uns in der Vergangenheit befassen mussten!

Das obige ist der detaillierte Inhalt vonBenutzerdefinierte Styling -Formulareingaben mit modernen CSS -Funktionen. 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)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

Es ist aus! Herzlichen Glückwunsch an das Vue -Team, dass es eine massive Anstrengung war und lange kommt. Alle neuen Dokumente auch.

Ein bisschen auf CI/CD Ein bisschen auf CI/CD Apr 02, 2025 pm 06:21 PM

Ich sage "Website" passt besser als "Mobile App", aber ich mag dieses Rahmen von Max Lynch:

Können Sie gültige CSS -Eigenschaftswerte aus dem Browser erhalten? Können Sie gültige CSS -Eigenschaftswerte aus dem Browser erhalten? Apr 02, 2025 pm 06:17 PM

Ich ließ jemanden mit dieser sehr legitimen Frage einschreiben. Lea hat gerade darüber gebloggt, wie Sie gültige CSS -Eigenschaften selbst aus dem Browser erhalten können. Das ist so.

Verwenden von Markdown und Lokalisierung im WordPress -Block -Editor Verwenden von Markdown und Lokalisierung im WordPress -Block -Editor Apr 02, 2025 am 04:27 AM

Wenn wir dem Benutzer direkt im WordPress -Editor Dokumentation anzeigen müssen, wie können Sie dies am besten tun?

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.

Vergleich von Browsern für reaktionsschnelles Design Vergleich von Browsern für reaktionsschnelles Design Apr 02, 2025 pm 06:25 PM

Es gibt eine Reihe dieser Desktop -Apps, in denen das Ziel Ihre Website gleichzeitig in verschiedenen Dimensionen angezeigt wird. So können Sie zum Beispiel schreiben

So verwenden Sie CSS -Gitter für klebrige Header und Fußzeilen So verwenden Sie CSS -Gitter für klebrige Header und Fußzeilen Apr 02, 2025 pm 06:29 PM

CSS Grid ist eine Sammlung von Eigenschaften, die das Layout einfacher machen als jemals zuvor. Wie alles andere ist es eine kleine Lernkurve, aber das Gitter ist

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

See all articles