Phase 4Responsive & moderne

#16 Pseudo-éléments et pseudo-classes

::before, ::after, :hover, :nth-child

Les pseudo-éléments

Les pseudo-éléments créent des éléments virtuels que vous pouvez styliser sans ajouter de HTML. Ils utilisent le double deux-points (::) :

::before et ::after
/* Ajouter du contenu décoratif avant un élément */
.citation::before {
  content: "\201C";
  font-size: 3rem;
  color: #3b82f6;
}

/* Astérisque obligatoire après les labels */
.obligatoire::after {
  content: " *";
  color: #ef4444;
}

/* Ligne décorative sous un titre */
h2::after {
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  background: #3b82f6;
  margin-top: 8px;
}

Autres pseudo-éléments

Autres pseudo-éléments
/* Première ligne du texte */
p::first-line {
  font-weight: bold;
}

/* Première lettre */
p::first-letter {
  font-size: 3rem;
  float: left;
  color: #3b82f6;
}

/* Texte sélectionné */
::selection {
  background: #3b82f6;
  color: white;
}

/* Texte placeholder */
input::placeholder {
  color: #9b9baa;
  font-style: italic;
}

Les pseudo-classes

Pseudo-classes d'état
a:hover { color: #3b82f6; }
.button:active { transform: scale(0.98); }

input:focus {
  border-color: #3b82f6;
  outline: 2px solid #3b82f6;
  outline-offset: 2px;
}

input:required { border-left: 3px solid #3b82f6; }
input:valid { border-color: #10b981; }
input:invalid { border-color: #ef4444; }

Pseudo-classes structurelles

Sélecteurs structurels
li:first-child { font-weight: bold; }
li:last-child { border-bottom: none; }

tr:nth-child(even) { background: #f5f5f5; }  /* Lignes zébrées */

p:not(:last-child) { margin-bottom: 1em; }

À vous de jouer

Essayez les commandes ci-dessous :

terminal — browser
user@stemlegacy:~$