Création de cases à cocher basées sur des images avec du HTML/CSS purement sémantique
Au lieu de vous fier à des solutions prédéfinies, vous pouvez implémenter cette fonctionnalité avec HTML et CSS purement sémantiques, favorisant votre compréhension des opérations CSS.
Étape 1 : HTML sémantique
Définissez des attributs d'identification distincts pour vos cases à cocher et enveloppez-les dans
Exemple :
<input type="checkbox">
Étape 2 : Masquer la case à cocher
Appliquer CSS pour masquer la case à cocher, par exemple : display: none;.
Étape 3 : Styliser la case à cocher visuelle
Utiliser le pseudo-élément ::before de CSS pour créer une représentation visuelle de la case à cocher :
label::before { background-image: url(unchecked.png); }
Étape 4 : Implémentation de l'état vérifié
Modifier les styles lorsque la case est cochée, à l'aide du pseudo-sélecteur :checked de CSS :
:checked + label::before { background-image: url(checked.png); }
N'oubliez pas que le sélecteur frère adjacent garantit que les changements de style s'appliquent uniquement aux étiquettes qui suivent immédiatement la case à cocher masquée.
Étape 5 : Position, dimensions et transitions
Positionnez correctement l'étiquette, attribuez les dimensions appropriées et appliquez en douceur transitions pour améliorer l'expérience utilisateur.
Exemple (extrait JavaScript) :
ul { list-style-type: none; } li { display: inline-block; } input[type="checkbox"][id^="cb"] { display: none; } label { border: 1px solid #fff; padding: 10px; display: block; position: relative; margin: 10px; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } label::before { background-color: white; color: white; content: " "; display: block; border-radius: 50%; border: 1px solid grey; position: absolute; top: -5px; left: -5px; width: 25px; height: 25px; text-align: center; line-height: 28px; transition-duration: 0.4s; transform: scale(0); } label img { height: 100px; width: 100px; transition-duration: 0.2s; transform-origin: 50% 50%; } :checked+label { border-color: #ddd; } :checked+label::before { content: "✓"; background-color: grey; transform: scale(1); } :checked+label img { transform: scale(0.9); box-shadow: 0 0 5px #333; z-index: -1; }
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!