Quelle est la bonne façon de surmonter le fait que ce code ne fonctionnera pas comme prévu ?
<div class="required">
<label>Name:</label>
<input type="text">
</div>
<style>
.required input:after { content:"*"; }
</style>
Dans un monde parfait, tous les input
obtiendraient le petit astérisque indiquant que le champ est obligatoire. Cette solution est impossible puisque le CSS est inséré après le contenu de l'élément, et non après l'élément lui-même, mais quelque chose comme cela serait idéal. Sur un site comportant des milliers de champs obligatoires, je peux déplacer l'astérisque devant l'entrée en modifiant une seule ligne ( :after
à :before
) ou je peux le déplacer à la fin de l'étiquette ( .required label:after
) ou devant l'étiquette, ou à un endroit de la boîte contenant l'étiquette, etc...
C'est important non seulement au cas où je changerais d'avis sur l'endroit où placer l'astérisque, mais aussi pour les cas particuliers où la mise en page du formulaire ne permet pas de placer l'astérisque dans la position standard. Cela convient également à la validation qui vérifie le formulaire ou met en évidence les contrôles mal remplis.
Enfin, il n'ajoute pas de balises supplémentaires.
Existe-t-il de bonnes solutions qui présentent tous ou la plupart des avantages du code impossible ?