CSS - Sélecteurs : Votre Passerelle vers des Pages Web Élégantes

Salut là, future superstar du design web ! Je suis ravi de vous guider dans cette incroyable aventure à travers le monde des sélecteurs CSS. En tant que quelqu'un qui enseigne la science informatique depuis plus d'une décennie, je peux vous dire que maîtriser les sélecteurs, c'est comme déverrouiller un coffre au trésor de possibilités de design web. Alors, plongeons dedans et faisons briller vos pages web !

CSS - Selectors

Types de Sélecteurs

Avant de commencer notre aventure, voyons rapidement les différents types de sélecteurs que nous allons explorer :

Type de Sélecteur Exemple Description
Universel * Sélectionne tous les éléments
Élément p Sélectionne tous les éléments

Classe .classname Sélectionne les éléments avec class="classname"
ID #idname Sélectionne l'élément avec id="idname"
Attribut [attribute] Sélectionne les éléments avec l'attribut spécifié
Groupe selector1, selector2 Sélectionne tous les éléments qui correspondent soit à selector1 soit à selector2
Pseudo-classe :hover Sélectionne les éléments dans un état spécifique
Pseudo-élément ::first-line Sélectionne une partie d'un élément
Descendant div p Sélectionne tous les

éléments à l'intérieur des

éléments
Enfant div > p Sélectionne tous les

éléments dont le parent est un

Frère Adjacent div + p Sélectionne le premier

élément qui vient immédiatement après un

Frère Général div ~ p Sélectionne tous les

éléments qui sont des frères des

éléments

Maintenant, explorons chacun de ceux-ci en détail !

Sélecteur Universel CSS

Le sélecteur universel est comme le couteau suisse du CSS - il sélectionne tout ! Il est représenté par un astérisque (*).

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

Ce code réinitialise les marges et les paddings pour tous les éléments et définit la propriété box-sizing. Il est souvent utilisé au début des feuilles de styles pour créer une feuille vierge.

Sélecteur Élément CSS

Les sélecteurs élémentaires ciblent des éléments HTML spécifiques. Ils sont simples mais puissants.

p {
font-size: 16px;
line-height: 1.5;
}

h1 {
color: #333;
font-family: 'Arial', sans-serif;
}

Ici, nous stylisons tous les éléments

pour avoir une taille de police de 16 pixels et une hauteur de ligne de 1.5. Nous donnons également à tous les éléments

une couleur gris foncé et définissons leur police en Arial.

Sélecteur de Classe CSS

Les sélecteurs de classe sont incroyablement polyvalents. Ils vous permettent d'appliquer des styles à plusieurs éléments qui partagent la même classe.

.highlight {
background-color: yellow;
font-weight: bold;
}

.error-message {
color: red;
border: 1px solid red;
padding: 10px;
}

Dans cet exemple, tout élément avec class="highlight" aura un arrière-plan jaune et un texte en gras. Les éléments avec class="error-message" seront affichés en rouge avec une bordure rouge et un peu de padding.

Sélecteur ID CSS

Les sélecteurs ID sont utilisés pour styliser un élément unique. Ils sont précédés d'un symbole de dièse (#).

#header {
background-color: #f0f0f0;
padding: 20px;
}

#main-content {
max-width: 800px;
margin: 0 auto;
}

Ce code stylise l'élément avec id="header" et l'élément avec id="main-content". Souvenez-vous, les IDs doivent être uniques dans une page !

Sélecteur Attribut CSS

Les sélecteurs d'attribut ciblent les éléments en fonction de leurs attributs ou valeurs d'attributs.

[type="text"] {
border: 1px solid #ccc;
padding: 5px;
}

[href^="https"] {
color: green;
}

[class*="btn"] {
cursor: pointer;
}

Ici, nous stylisons tous les éléments avec type="text", les liens qui commencent par "https", et les éléments dont la classe contient "btn".

Sélecteur de Groupe CSS

Les sélecteurs de groupe vous permettent d'appliquer les mêmes styles à plusieurs sélecteurs. Ils sont séparés par des virgules.

h1, h2, h3 {
font-family: 'Georgia', serif;
color: #333;
}

.error, .warning {
font-weight: bold;
}

Ce code applique la même police et couleur aux éléments h1, h2 et h3, et rend les classes .error et .warning en gras.

Sélecteur Pseudo-classe CSS

Les sélecteurs de pseudo-classe ciblent les éléments dans des états spécifiques.

a:hover {
text-decoration: underline;
}

input:focus {
outline: 2px solid blue;
}

li:nth-child(odd) {
background-color: #f0f0f0;
}

Ces styles soulignent les liens au survol, ajoutent un contour bleu aux inputs focusés, et donnent un arrière-plan gris clair à chaque élément impair de la liste.

Sélecteur Pseudo-élément CSS

Les sélecteurs de pseudo-élément vous permettent de styliser des parties spécifiques d'un élément.

p::first-letter {
font-size: 2em;
font-weight: bold;
}

h1::before {
content: "? ";
}

div::selection {
background-color: yellow;
}

Ce code agrandit et met en gras la première lettre des paragraphes, ajoute un emoji de doigt pointant avant les éléments h1, et fait que le texte sélectionné dans les divs a un arrière-plan jaune.

Sélecteur Descendant CSS

Les sélecteurs descendants ciblent les éléments qui sont des descendants d'un autre élément.

article p {
line-height: 1.6;
}

.container .box {
border: 1px solid #ccc;
}

Ici, nous stylisons les paragraphes à l'intérieur des articles et les éléments avec la classe "box" qui sont à l'intérieur des éléments avec la classe "container".

Sélecteur Enfant CSS

Les sélecteurs enfants ciblent les enfants directs d'un élément.

ul > li {
list-style-type: square;
}

div > p {
margin-bottom: 10px;
}

Ce code donne des puces carrées aux éléments de liste qui sont des enfants directs des listes ordonnées, et ajoute une marge inférieure aux paragraphes qui sont des enfants directs des divs.

Sélecteur Frère Adjacent CSS

Les sélecteurs frères adjacents ciblent les éléments qui viennent immédiatement après un autre élément.

h1 + p {
font-size: 1.2em;
font-weight: bold;
}

.button + .button {
margin-left: 10px;
}

Ici, nous faisons que le premier paragraphe après un h1 est plus grand et en gras, et ajoutons une marge à gauche aux boutons qui viennent juste après d'autres boutons.

Sélecteur Frère Général CSS

Les sélecteurs frères généraux ciblent les éléments qui sont des frères d'un autre élément, même s'ils ne sont pas directement adjacents.

h1 ~ p {
color: #666;
}

.highlight ~ li {
font-style: italic;
}

Ce code change la couleur de tous les paragraphes qui sont des frères des éléments h1, et met en italique les éléments de liste qui viennent après un élément avec la classe "highlight".

Sélecteurs Nestés dans CSS

Les sélecteurs nestés vous permettent d'écrire un CSS plus concis et lisible en nesting les sélecteurs les uns dans les autres.

.container {
max-width: 1200px;
margin: 0 auto;

.header {
background-color: #f0f0f0;
padding: 20px;

h1 {
color: #333;
}
}

.content {
padding: 20px;

p {
line-height: 1.6;
}
}
}

Cette structure imbriquée montre clairement la relation entre les éléments et rend le CSS plus organisé.

Caractéristiques des Sélecteurs Imbriqués CSS

  1. Lisibilité améliorée : L'imbriquage reflète la structure de votre HTML.
  2. Réduction de la répétition : Vous n'avez pas besoin de répéter les sélecteurs parents.
  3. Maintenance plus facile : Les modifications des sélecteurs parents s'appliquent automatiquement aux sélecteurs imbriqués.
  4. Limitation de portée : Les styles sont naturellement limités à leur contexte parent.

Souvenez-vous, bien que l'imbriquage puisse être puissant, ne l'utilisez pas trop profondément car cela peut rendre votre CSS plus difficile à comprendre et à entretenir.

Et voilà, mon apprenti designer web enthousiaste ! Vous venez de terminer une tournée rapide des sélecteurs CSS. Avec ces outils à votre disposition, vous êtes bien sur la voie de créer des pages web magnifiquement stylisées. Souvenez-vous, la pratique rend parfait, donc n'ayez pas peur d'expérimenter avec différents sélecteurs et combinaisons. Bon codage !

Credits: Image by storyset