Les sélecteurs simples en CSS
Les sélecteurs simples en CSS
-
Objectif
- Connaitre les sélecteurs en CSS
-
Introduction
- Un sélecteur CSS permet de définir un ensemble de règles CSS sur un élément HTML. Il existe plusieurs types de sélecteurs que nous allons détailler dans ce chapitre.
- On appelle « sélecteur de balise » (ou « sélecteur d’éléments ») le ou les mots clés précédant l’accolade et servant à indiquer le ou les balises du document auxquelles le style entre accolades s’applique.
- Il y a différents types de sélecteurs dans CSS.
- Nous aborderons également les combinateurs qui vont permettre d’associer plusieurs sélecteurs afin de cibler des éléments précis ou encore d’obtenir des combinaisons qui vont se révéler très pratiques. L’union fait la force comme on dit.
- Parmi les sélecteurs dits « simples », nous retrouvons plusieurs familles de sélecteurs :
- Sélecteurs de type
- Sélecteurs groupés
- Sélecteurs universels
- Sélecteurs descendants
- Sélecteurs d’identifiant
- Sélecteurs de classe
- Sélecteurs d’attribut
-
Sélecteur de type
- « sélecteur de type » (parfois appelé « sélecteur de balise » ou Sélecteur d’élément)
- Un sélecteur de type est simplement un sélecteur qui prend une seule balise HTML pour en faire de mise en forme
- Si par exemple vous devez cibler toutes les listes non ordonnées, utilisez simplement
ul {}
. - Il s’agit de la sélection la plus simple, puisque le sélecteur est constitué du nom de l’élément sans les caractères de début < et de fin de balise/>.
- Nous inscrivants par exemple:
- pour que le texte de tous les paragraphes figure en jaune sur fond bleue;
- Nous pouvons ainsi définir un style propre à chaque élément comme il en existe un par défaut dans les navigateurs
-
Sélecteurs regroupés
- Afin de réduire les déclarations répétitives dans les feuilles de style, le regroupement de sélecteurs et de déclarations est autorisé.
- On peut appliquer le même style à plusieurs éléments par la sélection de plusieurs éléments différents en les énumérant et en les séparent par une virgule dans le sélecteur. plutôt que de manipuler les définitions:
- nous pouvons écrire le style suivant :
- Cette possibilité de regroupement peut être utile pour définir des styles communs à un ensemble d’éléments en écrivant ce type de sélecteur pour cet ensemble, puis en ajoutant d’autres propriétés spécifiques à un des éléments de la liste.
- On définit ainsi une sorte de tronc commun à un groupe, puis on affine chacun de ses composants.
- Si nous écrivons par exemple le code suivant :
- l’élément <div> va avoir à la fois un texte noir, un fond rouge et une marge de 20 pixels, car la propriété margin, définie uniquement pour l’élément <div>, s’ajoute à celles déjà définies pour le sélecteur d’éléments
hl,div,p
. -
Sélecteur universel (
*
) - Le sélecteur universel en CSS est un sélecteur très générique qui permet de cibler tous les éléments HTML sur une page. Il est représenté par un astérisque (
*
). - Lorsque vous utilisez le sélecteur universel, il applique les styles à chaque élément HTML sur la page.
- Pour appliquer un style à tous les éléments, nous utiliserons le sélecteur universel * avant la définition d’une ou plusieurs propriétés.
- Styles de base : Vous pouvez utiliser le sélecteur universel pour définir des styles de base tels que la police de caractères, la couleur du texte et l’arrière-plan pour tous les éléments sur une page.
- Styling Global : Si vous souhaitez appliquer un style à tous les éléments sans spécifier de classe ou d’identifiant, le sélecteur universel est utile.
- Attention à la spécificité : Le sélecteur universel a une faible spécificité, ce qui signifie que les styles définis avec le sélecteur universel peuvent être écrasés par des sélecteurs plus spécifiques. Il est important de l’utiliser avec précaution pour éviter des effets indésirables sur votre mise en page.
- Par exemple, pour que la couleur de fond de tous les éléments soit le jaune, nous écrirons :
- Cela n’empêche pas de modifier cette couleur de fond pour un élément particulier, en la redéfinissant pour celui-ci, par exemple:
- Dans ce cas, tous les éléments ont un fond jaune, sauf <p> qui a un fond gris redéfini spécialement.
-
Sélecteurs Contextuels ou sélecteurs descendants
- Les sélecteurs contextuels, également appelés sélecteurs descendants, sont une partie importante des règles CSS permettant de cibler des éléments HTML spécifiques à l’intérieur d’autres éléments HTML.
- Ils sont utilisés pour appliquer des styles à des éléments enfants ou descendants d’un élément parent donné.
- Voici comment fonctionnent les sélecteurs contextuels :
-
Structure des sélecteurs descendants :
- Pour créer un sélecteur descendant, vous spécifiez l’élément parent suivi d’un espace, suivi de l’élément enfant que vous souhaitez cibler. Par exemple :
- element-parent : C’est l’élément HTML dont les descendants seront stylisés.
- element-enfant : C’est l’élément HTML à l’intérieur de element-parent que vous souhaitez cibler.
-
Exemple de sélecteur descendant :
- Supposons que vous ayez la structure HTML suivante :
- Vous pouvez utiliser un sélecteur descendant pour appliquer des styles spécifiques au paragraphe (
<p>
) à l’intérieur de la<div>
avec la classe « conteneur » : - Dans cet exemple, les styles de texte (couleur et taille de police) sont appliqués uniquement aux éléments
<p>
qui se trouvent à l’intérieur de la classe .conteneur. -
Avantages des sélecteurs descendants :
- Sélection précise : Les sélecteurs descendants permettent de cibler précisément des éléments spécifiques à l’intérieur d’autres éléments, ce qui vous donne un contrôle précis sur la mise en page et le style.
- Hiérarchie claire : Ils reflètent la structure hiérarchique du HTML, ce qui facilite la compréhension du code CSS, en particulier dans des documents HTML complexes.
- Réutilisation : Vous pouvez réutiliser les mêmes styles pour des éléments similaires situés à des endroits différents dans votre document HTML, tant qu’ils sont structurés de la même manière.
-
Remarques :
- Les sélecteurs descendants peuvent être imbriqués pour cibler des éléments descendants plus profonds. Par exemple, .conteneur ul li ciblera les éléments
<li>
qui se trouvent à l’intérieur d’une liste non ordonnée (<ul>
) à l’intérieur de .conteneur. - Vous pouvez également utiliser des sélecteurs de classe ou des sélecteurs d’ID en combinaison avec des sélecteurs descendants pour plus de spécificité.
- Gardez à l’esprit que l’utilisation excessive de sélecteurs descendants très spécifiques peut rendre votre code CSS moins flexible et plus difficile à maintenir. Il est souvent recommandé de suivre les principes de la séparation des préoccupations et d’utiliser des classes CSS pour ajouter des styles aux éléments.
-
Application :
- Imaginez que vous travaillez sur la création de styles CSS pour une page web. Vous avez la structure HTML suivante et des descriptions de styles à appliquer. Utilisez des sélecteurs descendants pour atteindre les éléments spécifiques et appliquer les styles requis :
- Structure HTML :
- Styles à appliquer :
- Créez un fichier CSS nommé « style.css« .
- Dans ce fichier « style.css », ajoutez les règles CSS appropriées pour les styles suivants :
- 1- Donnez à tous les paragraphes (<p>) à l’intérieur de la classe .conteneur une couleur de texte bleue (
color: blue;
). - 2- Donnez à tous les éléments de liste (<li>) à l’intérieur de la <ul> dans .conteneur une couleur de texte verte (color: green;).
- 3- Donnez une couleur de fond grise (background-color: gray;) à toutes les cellules (<td>) à l’intérieur de la classe .tableau.
- 4- Donnez à tous les boutons à l’intérieur de la classe .boutons une couleur de fond bleue (background-color: blue;) et une couleur de texte blanche (color: white;).
- 5- Rédigez les règles CSS appropriées pour chaque style à appliquer en utilisant des sélecteurs descendants.
- 6- Donnez à tous les titres de niveau 1 (<h1>) à l’intérieur de la classe .conteneur une couleur de texte rouge (color: red;).
- 7- Donnez une marge de 20 pixels à gauche (
margin-left: 20px;
) à tous les éléments de liste (<li>) à l’intérieur de la (<ul>) dans .conteneur. - 8- Donnez à toutes les cellules de tableau (<td>) à l’intérieur de la classe .tableau une bordure de 1 pixel solide noire (border: 1px solid black;).
- 9- Donnez à tous les boutons de classe .principal à l’intérieur de .boutons une largeur de 150 pixels (
width: 150px;
). - 10- Donnez à tous les boutons de classe .secondaire à l’intérieur de .boutons une couleur de fond jaune (
background-color: yellow;
). - 11- Donnez à tous les paragraphes (<p>) à l’intérieur de .conteneur une marge de 10 pixels en haut et en bas (
margin-top: 10px; et margin-bottom: 10px;
). - Intégrez le fichier CSS « style.css » que vous venez de créer à votre page HTML pour appliquer les styles aux éléments HTML.
- Créez un fichier CSS nommé « style.css » et ajoutez-y les règles CSS appropriées comme indiqué dans les questions précédentes.
- Contenu du fichier « style.css » :
- Intégrez le fichier CSS « style.css » à votre page HTML en utilisant la balise dans la section du document HTML.
- Exemple de lien CSS dans le fichier HTML :
p {color : yellow ; background-color : blue;}
h1 {color : black ; background-color : red;}
div {color : black ; background-color : red;}
p {color : black ; background-color : red;}
hl,div,p {color : black ; background-color : red;}
h1,div,p {color : black ; background-color : red;}
div {margin : 20px;}
*{background-color : yelloW;}
*{background-color : yellow;}
p{background-color : gray;}
element-parent element-enfant {
/* styles à appliquer à l'élément-enfant */
}
<div class="conteneur">
<p>Ceci est un paragraphe.</p>
<ul>
<li>Liste élément 1</li>
<li>Liste élément 2</li>
</ul>
</div>
.conteneur p {
color: blue;
font-size: 16px;
}
<div class="conteneur">
<h1>Titre de la Page</h1>
<p>Ceci est un paragraphe dans le conteneur.</p>
<ul>
<li>Faire les courses</li>
<li>Nettoyer la maison</li>
</ul>
<table class="tableau">
<tr>
<th>Nom</th>
<th>Âge</th>
</tr>
<tr>
<td>John</td>
<td>25</td>
</tr>
<tr>
<td>Jane</td>
<td>30</td>
</tr>
</table>
<div class="boutons">
<button class="principal">Bouton Principal</button>
<button class="secondaire">Bouton Secondaire</button>
</div>
</div>
Solution
/* Styles pour les paragraphes à l'intérieur de la classe .conteneur */
.conteneur p {
color: blue;
margin-top: 10px;
margin-bottom: 10px;
}
/* Styles pour les éléments de liste à l'intérieur de .conteneur */
.conteneur ul li {
color: green;
margin-left: 20px;
}
/* Styles pour les cellules de tableau à l'intérieur de .tableau */
.tableau td {
background-color: gray;
border: 1px solid black;
}
/* Styles pour les boutons à l'intérieur de .boutons */
.boutons button {
width: 150px;
}
/* Styles pour les boutons de classe .principal à l'intérieur de .boutons */
.boutons .principal {
background-color: blue;
color: white;
}
/* Styles pour les boutons de classe .secondaire à l'intérieur de .boutons */
.boutons .secondaire {
background-color: yellow;
}
/* Styles pour les titres de niveau 1 à l'intérieur de .conteneur */
.conteneur h1 {
color: red;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<title>Votre Page Web</title>
</head>
<body>
<!-- Votre contenu HTML ici -->
</body>
</html>
Sélecteur d’identifiant (id
)
- Les sélecteurs d’identifiant (id) sont une autre méthode de sélection d’éléments en CSS. Un identifiant est un attribut unique attribué à un élément HTML, ce qui signifie qu’un identifiant ne peut être utilisé que pour un seul élément sur une page donnée. Vous pouvez sélectionner un élément avec un identifiant spécifique en utilisant le sélecteur d’identifiant en CSS. Voici comment fonctionnent les sélecteurs d’identifiant :
- Pour cibler un élément avec un identifiant spécifique, utilisez le sélecteur d’identifiant en préfixant l’identifiant avec un signe dièse (
#
). Par exemple :
/* L'élément avec l'identifiant id="mon-id" */
#mon-id {
border: red 2px solid;
}
Exemple d’utilisation d’un sélecteur d’identifiant :
<p id="mon-paragraphe">Ceci est un paragraphe avec un identifiant</p>
#mon-paragraphe {
color: blue;
font-size: 16px;
}
Application
- Imaginez que vous travaillez sur la création de styles CSS pour une page web. Vous avez la structure HTML suivante et des descriptions de styles à appliquer en utilisant des sélecteurs d’identifiant (ID).
<p id="paragraphe-1">Ceci est le premier paragraphe.</p>
<p id="paragraphe-2">Ceci est le deuxième paragraphe.</p>
<p id="paragraphe-3">Ceci est le troisième paragraphe.</p>
- 1- Donnez à l’élément avec l’identifiant « paragraphe-1 » une couleur de texte bleue (
color: blue;
). - 2- Donnez à l’élément avec l’identifiant « paragraphe-2 » une couleur de texte verte (
color: green;
). - 3- Donnez à l’élément avec l’identifiant « paragraphe-3 » une couleur de texte rouge (
color: red;
). - 4- Donnez à tous les paragraphes une taille de police de 18 pixels (
font-size: 18px;
). - 5- Donnez à l’élément avec l’identifiant « paragraphe-1 » une marge de 10 pixels en haut (
margin-top: 10px;
). - 6- Donnez à l’élément avec l’identifiant « paragraphe-2 » une marge de 10 pixels en bas (
margin-bottom: 10px;
).
Solution
- Intégrez le fichier CSS « style.css » à votre page HTML en utilisant la balise dans la section du document HTML.
- Exemple de lien CSS dans le fichier HTML :
/* Styles pour l'élément avec l'identifiant "paragraphe-1" */
#paragraphe-1 {
color: blue;
font-size: 18px;
margin-top: 10px;
}
/* Styles pour l'élément avec l'identifiant "paragraphe-2" */
#paragraphe-2 {
color: green;
font-size: 18px;
margin-bottom: 10px;
}
/* Styles pour l'élément avec l'identifiant "paragraphe-3" */
#paragraphe-3 {
color: red;
font-size: 18px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="styles.css">
<title>Votre Page Web</title>
</head>
<body>
<!-- Structure HTML avec les paragraphes et les identifiants -->
<p id="paragraphe-1">Ceci est le premier paragraphe.</p>
<p id="paragraphe-2">Ceci est le deuxième paragraphe.</p>
<p id="paragraphe-3">Ceci est le troisième paragraphe.</p>
</body>
</html>
Sélecteur de classe
- Les sélecteurs de classe sont l’un des mécanismes de sélection les plus couramment utilisés en CSS. Ils vous permettent de cibler des éléments HTML qui ont été attribués à une classe spécifique. Contrairement aux sélecteurs d’identifiant (id), les classes peuvent être réutilisées sur plusieurs éléments de la page.
- Un sélecteur de classe est un sélecteur simple permet de cibler les éléments en fonction de la valeur de leur attribut
class
. - Avec le sélecteur de classe il est possible d’appliquer des styles différents pour des éléments HTML d’un même type.
- Représenté par un astérisque (*), le sélecteur universel correspond à un élément de n’importe quel type. Dans le CSS3, il a été étendu pour être combiné avec des espaces de noms.
-
Classe qui s’applique à un seul élément HTML
- Par exemple, si nous souhaitons que certains paragraphes (<p>) soient affichés en rouge (disons, pour mettre en évidence des paragraphes importants), et que d’autres paragraphes aient un alignement centré, nous pouvons définir deux classes pour chacun de types de paragraphe :
- Dans le document HTML, l’attribut class permet de choisir la classe qui sera utilisée :
-
Classe qui s’applique à tous les éléments HTML
- Pour définir une classe qui s’applique à tous les éléments HTML, et pas uniquement à un seul élément HTML (comme <p> dans l’exemple ci-dessus), on utilise la syntaxe suivante : l’élément HTML n’est pas écrit ; on commence directement par un point, suivi du nom de la classe.
- Ainsi, la classe important pourra être utilisée pour tous les éléments HTML :
p.introduction{text-align:center}
p.important{color:red}
<p class="introduction">Un paragraphe d’introduction</p>
<p class="important">Un paragraphe important</p>
Exemple :
.important{color:red}
alt;h1 class="important">Un titre important </h1>
<p class="important">Un paragraphe important </p>
Sélecteur d’attribut
- Dans le HTML, nous avons vu les attributs d’un élément. En CSS, on peut utiliser ces attributs pour cibler les éléments.
- Les sélecteurs d’attribut permettent de cibler un élément selon la présence d’un attribut ou selon la valeur donnée d’un attribut.
Applications
-
Application 01
-
Application 02
- Soit le code html suivant :
- Appliquez ce qui suit :
- 1. Un background de couleur beige ,une largeur de 500px ,un retrait de 5px , et un alignement centré pour l’élément identifié par « layout ».
- 2. Aligner le texte à gauche pour la classe « gauche » et à droite pour la classe « droite ».
- 3. Colorer le texte en bleu pour les éléments h2 et p.
- 4. Affecter une couleur bleue au background du bouton et un couleur blanche du texte.
<div id= »layout »>
<h2>Titre 2</h2>
<p class= »gauche »>
La révolution numérique a transformé radicalement notre façon de vivre et de travailler. Les avancées technologiques ont ouvert de nouvelles opportunités tout en présentant des défis uniques. Aujourd’hui, l’innovation est la clé de la réussite dans un monde en constante évolution.
</p>
<p class= »droite »>
Les entreprises prospères comprennent l’importance de s’adapter aux changements rapides du paysage numérique. En investissant dans la technologie et en favorisant un environnement propice à la créativité, elles restent à la pointe de l’industrie. L’avenir appartient à ceux qui embrassent le changement avec agilité.
</p>
<button >Lire la suite</button>
</div>
Solution
#layout{
background-color: beige;
width: 500px;
margin: 5px auto;
text-align: center;
}
Solution
#gauche {
text-align: left;
}
#droite {
text-align: right;
}
Solution
h2, p{
color: blue;
}
Solution
button{
background-color: blue;
color: white;
}