Reines CSS zur Realisierung der Platzhalteranimation und Eingabeüberprüfung für Eingabefelder

Reines CSS zur Realisierung der Platzhalteranimation und Eingabeüberprüfung für Eingabefelder

Weitere spannende Inhalte finden Sie unter https://github.com/abc-club/free-resources

Hintergrund

Können wir ohne weiteres reines CSS verwenden, um die folgenden Effekte zu erzielen:

Die Antwort ist ja.

Dies kann mit Hilfe der Pseudoklasse css:placeholder-shown:valid:invalid und des html5-Eingabemusterattributs erreicht werden.

Die aktuelle Kompatibilität der Pseudoklasse :placeholder-shown ist wie folgt:

:placeholder-show-Kompatibilität

Direkt auf den Code! ☺️

Quellcode

https://jsbin.com/qenucaz/edit?html,css,output

html:

<!DOCTYPE html>
<html>
<Kopf>
  <meta charset="utf-8">
  <meta name="viewport" content="width=Gerätebreite">
  <title>JS Bin</title>
</Kopf>
<Text>
  <div Klasse="Eingabe-Füllfeld">
    <input class="input-fill" placeholder="E-Mail" pattern="^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$" erforderlich>
    <a href="javascript:" class="clear">schließen</a>
    <label class="input-label">E-Mail</label>
</div>
</body>
</html>

CSS:

.Eingabe-Füllung{
  Breite: 100 %;
  Rand: 0;
  Schriftgröße: 16px;
  Zeilenhöhe: 1,5;
  Gliederung: keine;
  Polsterung: 20px 16px 6px;
  Rand: 1px durchgehend transparent;
   Hintergrund: #f5f5fa;
  Rahmenradius: 10px;
  Übergang: Rahmenfarbe .25 s;
}
.input-fill:placeholder-shown::placeholder {
    Farbe: transparent;
    
}
.Eingabe-Füllfeld {
  Breite: 50%;
    Position: relativ;
}
.Eingabebezeichnung {
    Position: absolut;
    links: 16px; oben: 14px;
    Zeigerereignisse: keine;
    Farbe: #BEC1D9;
   Polsterung: 0 2px;
    Transform-Ursprung: 0 0;
    Zeigerereignisse: keine;
    Übergang: alle .25 s;
}
.input-fill:nicht(:Platzhalter angezeigt) ~ .input-label,
.input-fill:fokus ~ .input-label {
    transformieren: Skalierung (0,75) übersetzen (0px, -14px);    
}
.input-fill:fokus{
  Rand: 2px durchgezogen #1d31aa;
}

.klar{
  Position: absolut;
  oben: 10px;
  rechts: -20px;
   Anzeige: keine;
    Übergang: alle .25 s;
}
.input-fill::-ms-clear { Anzeige: keine; }
.input-fill:nicht(:Platzhalter angezeigt) + .clear { Anzeige: inline; }

.input-fill:gültig {
 Rahmenfarbe: grün;
 Box-Shadow: Einschub 5px 0 0 grün;
}
.input-fill:nicht(:Platzhalter angezeigt):ungültig {
 Rahmenfarbe: rot;
 Box-Shadow: Einschub 5px 0 0 rot;
}

Mehr

Weitere spannende Inhalte finden Sie unter https://github.com/abc-club/free-resources

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

<<:  Das Konzept der MySQL-Tablespace-Fragmentierung und Lösungen für damit verbundene Probleme

>>:  So installieren Sie Docker unter CentOS und veröffentlichen Docker remote in Springboot

Artikel empfehlen

Installieren Sie die virtuelle CentOS7-Maschine unter Win10

1. Laden Sie die VMware Workstation 64-Version he...

Installations- und Konfigurationstutorial von MySQL 8.0.16 unter Win10

1. Entpacken Sie MySQL 8.0.16 Der Ordner dada und...

Einige Dinge, die beim Erstellen einer Webseite zu beachten sind

--Backup der Homepage 1.txt-Text 2. Scannen Sie da...

Zusammenfassung zweier Methoden zum Implementieren der Vue-Druckfunktion

Methode 1: Installieren Sie das Plugin über npm 1...

JS tiefe und flache Kopierdetails

Inhaltsverzeichnis 1. Was bedeutet „Shallow Copy“...

Zusammenfassung der XHTML-Anwendung im Webdesign-Studium

<br />Im Allgemeinen ist die Dateiorganisati...

Zusammenfassung häufig verwendeter SQL-Operationen in MySQL-Tabellen

1. Sehen Sie sich die Feldtypen in der Tabelle an...

So verwenden Sie ein Domestic Image Warehouse für Docker

1. Problembeschreibung Aus bestimmten Gründen ist...

HTML-Tutorial: Sammlung häufig verwendeter HTML-Tags (6)

Diese eingeführten HTML-Tags entsprechen nicht un...

So installieren Sie MySQL 5.7.29 mit einem Klick mithilfe eines Shell-Skripts

Dieser Artikel bezieht sich auf die Arbeit des 51...