Derniers ajustements du style de validation
Pour maximiser les fonctionnalités tout en ajoutant des styles manquants, rappelez-vous ce principe clé : Ne présumez pas.
Cela signifie que nous pouvons utiliser des variables CSS pour le remplissage relatif, les marges, les bordures et les couleurs, mais nous ne dicterons pas l'apparence de la case à cocher. Il s'agit d'une décision de style au niveau du projet, et non d'un élément spécifique. (Certains systèmes de conception, comme Material Design, stylisent fortement chaque élément, empêchant la réutilisation des composants individuels.)
Style des cases à cocher
Pour la case à cocher, échangez simplement les positions de la case à cocher et de l'étiquette. Laissez la conception globale du projet gérer l’apparence de la case à cocher. Deux approches existent : une méthode simple et une autre plus complexe. L'approche complexe utilise CSS comme ceci :
.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; } }
Une solution plus simple consiste à attribuer explicitement une nouvelle propriété de type au cr-field
:
<!-- input.partial --> <div class="cr-field cr-checkbox"> <!-- ... --> </div>
Ensuite, utilisez ce CSS moins complexe :
.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; } }
Ce sélecteur plus simple offre plus de flexibilité pour styliser d'autres éléments tels que les astérisques requis, le texte d'aide et les messages de commentaires. Parfois, une approche moins complexe est préférable.
Résoudre les cas extrêmes
Un scénario impliquait un astérisque obligatoire masqué, positionné à l’extrême droite. Sans altérer le composant bibliothèque ou le CSS partagé, on peut améliorer sa visibilité en stylisant son conteneur :
/* Set container width to c-5 and display as block */
Cela impliquait :
- Définir la largeur du conteneur sur un pourcentage souhaité et modifier son affichage en
block
(les composants angulaires par défaut sontcontents
). - Ajustement des largeurs des composants intérieurs à 50 % chacun.
- Mise à jour du message d'erreur "Ajouter une date dans le futur", englobant à la fois les règles de date d'expiration et de valeur requise.
Style de case à cocher personnalisé
Les projets ont souvent des styles de cases à cocher uniques. En utilisant notre CSS existant, stylisons une case à cocher en utilisant un exemple MDN :
.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... */ }
Cela démontre qu'éviter les sélecteurs trop complexes évite les conflits CSS.
Champs masqués et remplis automatiquement
Les entrées cachées simplifient la validation. Si dans un cr-field
, la validation est simple. Pour les entrées masquées en dehors de ce contexte, nous introduisons l'attribut type="hidden"
et le style en conséquence :
.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; } }
Pour les champs remplis automatiquement, nous utilisons type="static"
pour éviter le chevauchement des étiquettes d'espace réservé :
.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; } }
Conclusion
Nos objectifs étaient : des entrées HTML natives, des règles de validation minimales, un formulaire angulaire flexible, un style basé sur les attributs, une soumission de formulaire libre et un style minimal et remplaçable. Nous pensons avoir atteint ces objectifs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











Essayons de savoir un terme ici: "fournisseur de formulaire statique". Vous apportez votre HTML

Au début d'un nouveau projet, la compilation SASS se produit en un clin d'œil. Cela se sent bien, surtout quand il est associé à BrowSersync, qui recharge

Dans cette semaine, le Roundup des nouvelles de la plate-forme, Chrome présente un nouvel attribut pour le chargement, les spécifications d'accessibilité pour les développeurs Web et la BBC Moves

C'est moi qui regarde l'élément HTML pour la première fois. J'en ai été conscient depuis un certain temps, mais il ne l'a pas encore pris pour un tour. Il a un peu cool et

L'achat ou la construction est un débat classique de la technologie. Construire des choses vous-même peut être moins cher car il n'y a pas d'article de ligne sur votre facture de carte de crédit, mais

Pendant un certain temps, iTunes était le grand chien du podcasting, donc si vous avez lié "Abonnez-vous au podcast" pour aimer:

Au cours de cette semaine, un Bookmarklet pratique pour inspecter la typographie, en utilisant Await pour bricoler comment les modules JavaScript s'importent, ainsi que Facebook & # 039; S

Il existe de nombreuses plates-formes d'analyse pour vous aider à suivre les données des visiteurs et d'utilisation sur vos sites. Peut-être plus particulièrement Google Analytics, qui est largement utilisé
