suchen
HeimWeb-FrontendCSS-TutorialLetzte Änderungen am Validierungsstil

Um die Funktionalität zu maximieren und gleichzeitig fehlende Stile hinzuzufügen, beachten Sie dieses Grundprinzip: Gehen Sie nicht davon aus.

Das bedeutet, dass wir CSS-Variablen für relative Abstände, Ränder, Rahmen und Farben verwenden können, aber das Aussehen des Kontrollkästchens nicht vorschreiben. Dabei handelt es sich um eine Stilentscheidung auf Projektebene, nicht um eine elementspezifische Entscheidung. (Einige Designsysteme, wie Material Design, gestalten jedes Element stark und behindern so die Wiederverwendung einzelner Komponenten.)

Kontrollkästchen-Styling

Für das Kontrollkästchen tauschen Sie einfach die Positionen des Kontrollkästchens und der Beschriftung aus. Überlassen Sie das Gesamtdesign des Projekts die Gestaltung des Kontrollkästchens. Es gibt zwei Ansätze: eine einfache Methode und eine komplexere. Der komplexe Ansatz verwendet CSS wie folgt:

.cr-field {
  /* Target previous sibling */
  .cr-label:has(~ [type="checkbox"]) {
    /* Crucial: remove transform in all cases */
    transform: none !important;
    inset-block-start: 0;
    inset-inline-start: 0;
    padding-inline-start: 1.8rem;
    position: relative;
    display: inline-block;
    background: none;
    cursor: pointer;
  }

  .cr-input[type="checkbox"] {
    position: absolute;
    inset-inline-start: 0;
  }
}

Eine einfachere Lösung besteht darin, dem cr-field:

explizit eine neue Typeigenschaft zuzuweisen
<!-- input.partial -->
<div class="cr-field cr-checkbox">
  <!-- ... -->
</div>

Dann verwenden Sie dieses weniger komplexe CSS:

.cr-field.cr-checkbox {
  .cr-label {
    /* Same as above */
  }
  .cr-input {
    /* Same as above */
  }
  .cr-feedback {
    margin-block-start: 0;
    float: none;
  }
  .cr-required {
    position: static;
  }
}

Dieser einfachere Selektor bietet mehr Flexibilität beim Gestalten anderer Elemente wie erforderliche Sternchen, Hilfetext und Feedback-Nachrichten. Manchmal ist ein weniger komplizierter Ansatz besser.

Validation style final tweaks

Adressierung von Grenzfällen

Ein Szenario beinhaltete ein verdecktes erforderliches Sternchen, das ganz rechts positioniert war. Ohne die Bibliothekskomponente oder das gemeinsam genutzte CSS zu ändern, können wir ihre Sichtbarkeit verbessern, indem wir ihren Container formatieren:

/* Set container width to c-5 and display as block */

Validation style final tweaks

Dazu gehörte Folgendes:

  1. Festlegen der Breite des Containers auf einen gewünschten Prozentsatz und Ändern seiner Anzeige auf block (Winkelkomponenten sind standardmäßig auf contents eingestellt).
  2. Anpassung der inneren Komponentenbreiten auf jeweils 50 %.
  3. Aktualisierung der Fehlermeldung in „Fügen Sie ein Datum in der Zukunft hinzu“, das sowohl abgelaufene Datums- als auch erforderliche Wertregeln umfasst.

Benutzerdefiniertes Kontrollkästchen-Styling

Projekte haben oft einzigartige Kontrollkästchenstile. Lassen Sie uns mithilfe unseres vorhandenen CSS ein Kontrollkästchen anhand eines MDN-Beispiels formatieren:

.gr-something .cr-field.cr-checkbox {
  .cr-input {
    /* Remove default appearance */
    appearance: none;
    width: 44px;
    height: 24px;
    border-radius: 12px;
    transition: all 0.4s;
  }
  /* ...rest of MDN-based styles... */
}

Validation style final tweaks

Dies zeigt, dass die Vermeidung übermäßig komplexer Selektoren CSS-Konflikte verhindert.

Versteckte und automatisch ausgefüllte Felder

Versteckte Eingaben vereinfachen die Validierung. Wenn innerhalb eines cr-field, ist die Validierung unkompliziert. Für versteckte Eingaben außerhalb dieses Kontexts führen wir das Attribut type="hidden" und den entsprechenden Stil ein:

.cr-field.cr-hidden {
  .cr-label {
    display: none;
  }
  .cr-input[required] ~ .cr-required {
    display: none;
  }
  .cr-feedback {
    float: none;
    margin-block-start: 0;
    margin-inline-start: 0;
  }
}

Validation style final tweaks

Für automatisch ausgefüllte Felder verwenden wir type="static", um eine Überlappung von Platzhalterbeschriftungen zu verhindern:

.cr-field {
  /* Target previous sibling */
  .cr-label:has(~ [type="checkbox"]) {
    /* Crucial: remove transform in all cases */
    transform: none !important;
    inset-block-start: 0;
    inset-inline-start: 0;
    padding-inline-start: 1.8rem;
    position: relative;
    display: inline-block;
    background: none;
    cursor: pointer;
  }

  .cr-input[type="checkbox"] {
    position: absolute;
    inset-inline-start: 0;
  }
}

Validation style final tweaks

Fazit

Unsere Ziele waren: native HTML-Eingaben, minimale Validierungsregeln, ein flexibles Angular-Formular, attributbasierter Stil, lose Formularübermittlung und minimaler, ersetzbarer Stil. Wir glauben, dass wir diese Ziele erreicht haben.

Validation style final tweaks

Das obige ist der detaillierte Inhalt vonLetzte Änderungen am Validierungsstil. 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
Hinzufügen von Kastenschatten zu WordPress -Blöcken und -ElementenHinzufügen von Kastenschatten zu WordPress -Blöcken und -ElementenMar 09, 2025 pm 12:53 PM

Die CSS-Box-Shadow- und Umrisseigenschaften haben Thema gewonnen. JSON-Unterstützung in WordPress 6.1. Sei ein paar Beispiele für die Funktionsweise in realen Themen und welche Optionen wir diese Stile auf WordPress -Blöcke und Elemente anwenden müssen.

Erstellen Sie ein JavaScript -Kontaktformular mit dem Smart Forms FrameworkErstellen Sie ein JavaScript -Kontaktformular mit dem Smart Forms FrameworkMar 07, 2025 am 11:33 AM

Dieses Tutorial zeigt, dass professionelle JavaScript-Formulare mithilfe des Frameworks Smart Forms erstellt werden (Hinweis: Nicht mehr verfügbar). Während der Rahmen selbst nicht verfügbar ist, bleiben die Prinzipien und Techniken für andere Formbauer relevant.

Entmystifizierende Bildschirmleser: Zugrunde Formen und Best PracticesEntmystifizierende Bildschirmleser: Zugrunde Formen und Best PracticesMar 08, 2025 am 09:45 AM

Dies ist der 3. Beitrag in einer kleinen Serie, die wir in Form von Barrierefreiheit gemacht haben. Wenn Sie den zweiten Beitrag verpasst haben, lesen Sie "Verwalten des Benutzerfokus mit: Fokus-Sichtbar". In

Erstellen Sie einen Inline -Texteditor mit dem inhaltlichen AttributErstellen Sie einen Inline -Texteditor mit dem inhaltlichen AttributMar 02, 2025 am 09:03 AM

Der Aufbau eines Inline -Texteditors ist nicht trivial. Der Prozess beginnt damit, dass das Zielelement bearbeitbar wird und potenzielle SyntaxE -Ausnahmen behandelt. Erstellen Sie Ihren Editor Um diesen Editor zu erstellen, müssen Sie den Inhalt dynamisch ändern

Arbeiten mit GraphQL CachingArbeiten mit GraphQL CachingMar 19, 2025 am 09:36 AM

Wenn Sie kürzlich mit GraphQL gearbeitet oder seine Vor- und Nachteile überprüft haben, haben Sie zweifellos Dinge wie "GraphQL nicht unterstützen Caching" oder gehört

Machen Sie Ihren ersten Seltsamen -Sufle -ÜbergangMachen Sie Ihren ersten Seltsamen -Sufle -ÜbergangMar 15, 2025 am 11:08 AM

Die Sufelte Transition -API bietet eine Möglichkeit, Komponenten zu beleben, wenn sie das Dokument eingeben oder verlassen, einschließlich benutzerdefinierter Svelte -Übergänge.

Vergleich der 5 besten PHP -Formbauer (und 3 kostenlose Skripte)Vergleich der 5 besten PHP -Formbauer (und 3 kostenlose Skripte)Mar 04, 2025 am 10:22 AM

In diesem Artikel werden die auf dem Envato -Markt verfügbaren Top -Skripte für PHP -Formulierungen untersucht und deren Funktionen, Flexibilität und Design verglichen. Lassen Sie uns vor dem Tauchen in bestimmte Optionen verstehen, was ein PHP -Formular Builder ist und warum Sie einen verwenden würden. Eine PHP -Form

Datei hochladen mit Multer in node.js und ausdrückenDatei hochladen mit Multer in node.js und ausdrückenMar 02, 2025 am 09:15 AM

Dieses Tutorial führt Sie durch das Erstellen eines Datei -Upload -Systems mit Node.js, Express und Multer. Wir werden die Hoch- und mehrere Datei -Uploads behandeln und sogar das Speichern von Bildern in einer MongoDB -Datenbank zum späteren Abrufen demonstrieren. Richten Sie zunächst Ihr Projec ein

See all articles

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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools