recherche
Maisoninterface Webtutoriel CSSDerniers 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.

Validation style final tweaks

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 */

Validation style final tweaks

Cela impliquait :

  1. Définir la largeur du conteneur sur un pourcentage souhaité et modifier son affichage en block (les composants angulaires par défaut sont contents).
  2. Ajustement des largeurs des composants intérieurs à 50 % chacun.
  3. 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... */
}

Validation style final tweaks

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;
  }
}

Validation style final tweaks

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;
  }
}

Validation style final tweaks

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.

Validation style final tweaks

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!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Comment nous avons tagué Google Fonts et créé des goofont.comComment nous avons tagué Google Fonts et créé des goofont.comApr 12, 2025 pm 12:02 PM

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

Articles de développement Web intemporelsArticles de développement Web intemporelsApr 12, 2025 am 11:44 AM

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é

L'accord avec l'élément de sectionL'accord avec l'élément de sectionApr 12, 2025 am 11:39 AM

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

Pratiquez des requêtes GraphQL avec l'API de l'état de JavaScriptPratiquez des requêtes GraphQL avec l'API de l'état de JavaScriptApr 12, 2025 am 11:33 AM

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

CMSS au niveau des composantsCMSS au niveau des composantsApr 12, 2025 am 11:09 AM

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

Définissez le type sur un cercle ... avec chemin de décalageDéfinissez le type sur un cercle ... avec chemin de décalageApr 12, 2025 am 11:00 AM

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

What does "revert" do in CSS?What does "revert" do in CSS?Apr 12, 2025 am 10:59 AM

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

Les amoureux modernesLes amoureux modernesApr 12, 2025 am 10:58 AM

J'adore les trucs comme ça.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

Listes Sec

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

PhpStorm version Mac

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

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux