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!

Goofonts est un projet parallèle signé par un développeur-femme et un concepteur-mari, tous deux de grands fans de typographie. Nous avons marqué Google

Pavithra Kodmad a demandé aux gens des recommandations sur ce qu'ils pensaient être certains des articles les plus intemporels sur le développement Web qui ont changé

Deux articles ont publié exactement le même jour:

Apprendre à créer des API GraphQL peut être assez difficile. Mais vous pouvez apprendre à utiliser les API GraphQL en 10 minutes! Et il se trouve que je suis parfait

Lorsqu'un composant vit dans un environnement où les données interrogent les données qui vivent à proximité, il y a une ligne assez directe entre le composant visuel et le

Ici, une rotation CSS légitime de Yuanchuan. Il y a ce chemin de décalage de la propriété CSS. Il était une fois, il s'appelait le chemin de mouvement, puis il a été renommé. je

Miriam Suzanne explique dans une vidéo de développeur de Mozilla sur le sujet.


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

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Dreamweaver CS6
Outils de développement Web visuel

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux