Exercice: Pseudo-classes & pseudo-éléments¶
Utilisation de l'IA générative ou d'agent de codage IA interdits poru cet exercice
Contexte¶
Maintenant que tu connais ces sélecteurs, mets-les en pratique.
Un composant HTML est déjà stylisé. Tu ne peux pas modifier le HTML. Ton travail : compléter le CSS aux endroits indiqués pour appliquer les pseudo-classes et pseudo-éléments vus en cours.
Fichier de départ¶
IMPORTANT : Connectez-vous à CodePen d'abord et ensuitefaites un FORK du Pen de départ pour l'enregistrer dans votre compte, archiver l'exercice et pouvoir avoir un lien unique vers votre exercice complété pour la remise. En haut à droite: [Controls] > Fork
Consignes¶
- 1.
::before- La première carte doit afficher un badge "Nouveau" au-dessus d'elle, positionné en haut à gauche. Utilise le pseudo-élément
::beforesur.cartes .carte:first-child - La propriété content doit valoir "Nouveau".
- Donne-lui un fond vert (
--couleur-accent-clair), un texte vert foncé (--couleur-accent), unpaddingde2px 8px, unborder-radiusde99pxet unfont-sizede0.7rem. - Pour le positionner :
position absolute,top: -10px,left: 12px.
- La première carte doit afficher un badge "Nouveau" au-dessus d'elle, positionné en haut à gauche. Utilise le pseudo-élément
- 2.
::after- Chaque carte doit afficher une flèche "→" en bas à droite.
- Utilise
::aftersur.carte. - La flèche doit se déplacer de
4pxvers la droite au survol de la carte (combine::afteravec:hover). Attention, pour générer une translation, le pseudo-élément doit être en modedisplay: inline-blockoudisplay: block. - Ajoute une
transitionde0.2ssurtransform.
- 3.
:hover- Au survol d'une carte, change la couleur de sa bordure pour
--couleur-accent.
- Au survol d'une carte, change la couleur de sa bordure pour
- 4.
:focus-visible- Les cartes sont focusables (
tabindex="0"dans le HTML). - Quand elles reçoivent le focus clavier (touche ++Tab++), elles doivent afficher un contour visible :
outline: 2px solid var(--couleur-accent); outline-offset: 3px; - Note : utilise
:focus-visibleet NON:focus, pour que le contour n'apparaisse pas au clic souris.
- Les cartes sont focusables (
- 5.
:last-child- Le dernier élément de la liste ne doit pas avoir de bordure inférieure (border-bottom: none).
- 6.
:nth-child()- Les éléments pairs de la liste doivent avoir un fond blanc : background-color: #fff.
- 7.
:not()+::before- Tous les éléments de la liste SAUF le premier doivent avoir un
padding-leftde2rem(ils sont "en retrait"). - Le premier élément doit avoir un petit cercle coloré devant lui via
::before : 8px × 8px, border-radius 50%, background var(--couleur-accent), display inline-block.
- Tous les éléments de la liste SAUF le premier doivent avoir un
- 8.
:checkedQuand la case est cochée :- Le
.toggle-fonddoit devenirvar(--couleur-accent) - Le
.toggle-boutondoit se déplacer de 18px vers la droite (transform: translateX(18px))- Astuce : utilise le combinateur ~ (sibling) après input:checked pour cibler les éléments frères.
- Exemple :
.toggle-enveloppe input:checked ~ .toggle-fond { }
- Le
- 9.
:disabledLe troisième toggle est désactivé (attribut disabled dans le HTML). Quand un input est disabled :- Le curseur de .toggle-rangee doit devenir "not-allowed"
- Le texte de la rangée doit devenir
var(--couleur-texte-secondaire) - Le
.toggle-fonddoit avoir une opacité de 0.4- Astuce : utilise
:has()pour remonter du input désactivé jusqu'à .toggle-rangee. - Exemple :
.toggle-rangee:has(input:disabled) { }
- Astuce : utilise
📚 Notes de cours¶
📚 Contenu de cours pseudo-classes