Maison > interface Web > tutoriel CSS > Comment puis-je créer une alternative à une case à cocher qui utilise des images et réduit l'image en cliquant, en superposant une case à cocher ?

Comment puis-je créer une alternative à une case à cocher qui utilise des images et réduit l'image en cliquant, en superposant une case à cocher ?

Susan Sarandon
Libérer: 2024-11-13 14:25:02
original
838 Les gens l'ont consulté

How can I create a checkbox alternative that uses images and shrinks the image upon clicking, overlaying a tick box?

Utiliser des images comme des cases à cocher

Problème

Créer une alternative aux cases à cocher standard dans lesquelles les utilisateurs cliquent sur les images pour réduire l'image et superposer une case à cocher.

Solution

HTML/CSS sémantique pure Solution

Cette solution élimine le besoin de solutions prédéfinies et améliore la compréhension des techniques CSS.

Étapes :

  1. Attribuez des identifiants uniques aux cases à cocher et connectez-les aux étiquettes à l'aide de l'attribut for de l'étiquette.
  2. Masquer les cases à cocher à l'aide de CSS (par exemple, display : none ;).
  3. Utilisez le pseudo-élément label::before comme remplacement visuel des cases à cocher :

    • Définissez une image d'arrière-plan initiale pour l'élément non coché state.
  4. Utilisez le pseudo-sélecteur :checked pour changer l'image lorsque la case à cocher est coché :

    • Appliquer une image d'arrière-plan pour l'état coché.
    • Utilisez le sélecteur de frères et sœurs ( ) pour cibler uniquement les étiquettes adjacentes aux cases à cocher.
  5. Stylisez l'étiquette avec le bon positionnement, l'affichage, la largeur et hauteur.

Modifier

Remplacement des cases à cocher CSS pur

Cette modification présente une solution purement basée sur CSS sans utiliser d'images :

  • Créez un élément ::before sur l'étiquette avec le contenu « ✓».
  • Appliquez des arrondis bordures et transitions pour améliorer l'apparence visuelle.

Mise en œuvre

Un exemple de codepen démontre cette technique en action :

http://codepen.io/anon/ pen/wadwpx

Extrait de code

/* Style the labels and images */
label {
  border: 1px solid #fff;
  padding: 10px;
  display: block;
  position: relative;
  margin: 10px;
  cursor: pointer;
  /* disable text selection */
  -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%;
}

/* Style the checked state */
: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;
}

/* Style the unordered list that contains the checkboxes */
ul {
  list-style-type: none;
}

/* Style the individual list items */
li {
  display: inline-block;
}
Copier après la connexion
<ul>
  <li><input type="checkbox">
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal