Maison > interface Web > tutoriel CSS > le corps du texte

Comment créer des cases à cocher basées sur des images à l'aide de HTML et CSS sémantiques purs ?

Linda Hamilton
Libérer: 2024-11-16 15:14:02
original
342 Les gens l'ont consulté

How to Create Image-Based Checkboxes Using Pure Semantic HTML and CSS?

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">
Copier après la connexion

É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);
}
Copier après la connexion

É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);
}
Copier après la connexion

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

source:php.cn
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