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 !
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
- Lisibilité améliorée : L'imbriquage reflète la structure de votre HTML.
- Réduction de la répétition : Vous n'avez pas besoin de répéter les sélecteurs parents.
- Maintenance plus facile : Les modifications des sélecteurs parents s'appliquent automatiquement aux sélecteurs imbriqués.
- 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