selecteur {
déclaration
déclaration
}
propriété:valeur;
h1 {
color: red;
font-size: 5em;
}
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Une expérience avec CSS</title>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<h1>Hello World!</h1>
<p>ceci est mon premier exemple CSS</p>
</body>
</html>
h1 {
color: blue;
background-color: yellow;
border: 1px solid black;
}
p {
color: red;
}
Les règles CSS peuvent être écrites directement dans l'en-tête HTML <head> dans un élément <style>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Mes expérimentations CSS</title>
<style>
h1 {
color: blue;
background-color: yellow;
border: 1px solid black;
}
p {
color: red;
}
</style>
</head>
<body>
<h1>Hello World!</h1>
<p>Ceci est mon premier exemple CSS</p>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Mes expérimentations CSS</title>
</head>
<body>
<h1 style="color: blue;background-color: yellow;border: 1px solid black;">
Hello World!
</h1>
<p style="color:red;">Ceci est mon premier exemple CSS</p>
</body>
</html>
Le navigateur:
<p>
Let's use:
<span>Cascading</span>
<span>Style</span>
<span>Sheets</span>
</p>
P
├─ "Let's use:"
├─ SPAN
| └─ "Cascading"
├─ SPAN
| └─ "Style"
└─ SPAN
└─ "Sheets"
Sélecteurs de type, de classe et d'ID
→ ciblent les élements HTML
/* cible des éléments HTML */
h1 {
}
/* cible une classe */
.box {
}
/* cible un id (unique) */
#unique {
}
Sélecteurs d'attribut
→ ciblent des éléments en fonction de la présence d'un attribut
a[title] {
}
/* cible un attribut avec une valeur bien précise */
a[href="https://example.com"]{
}
Pseudo-classes
→ ciblent des éléments dans un état donné.
/* pseudo-classe :hover cible un élément seulement s'il est survolé par le pointeur de la souris */
a:hover {
}
:link, :visited:hover, :active, :focus:first-child, :last-child, :nth-child(n)
Pseudo-éléments
→ ciblent une certaine partie d'un élément plutôt que l'élément tout entier.
/* ::first-line sélectionne la première ligne d'un texte contenu dans un élément */
p::first-line {
}
::first-line::first-letter::before, ::after::selection
Combinateurs
→ combine les sélecteurs pour cibler plus finement les éléments dans nos documents.
/* sélectionne les paragraphes enfants directs de <article> grâce au combinateur enfant (>) */
article > p {
}
selecteur selecteur Combinateur descendant selecteur > selecteur Combinateur enfants (directs) selecteur + selecteur Combinateur frère adjacents selecteur ~ selecteur Combinateur général de frères <!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Cascade</title>
<style>
body {
color: blue;
}
span {
color: black;
}
</style>
</head>
<body>
<p>On a configuré la valeur de la propriété color sur le body à blue. Cette valeur est héritée par ses descendants.</p>
<p>On peut changer la couleur en ciblant un élément avec un selecteur comme <span>span</span>.</p>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Cascade</title>
<style>
h1 {
color: red;
}
h1 {
color: green;
}
</style>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Cascade</title>
<style>
.main-heading {
color: red;
}
h1 {
color: green;
}
</style>
</head>
<body>
<h1 class="main-heading">Hello World!</h1>
</body>
</html>
| Sélecteur | Identifiants | Classes | Éléments | Spécificité totale |
| h1 | 0 | 0 | 1 | 0-0-1 |
| h1 + p::first-letter | 0 | 0 | 3 | 0-0-3 |
| li > a[href*="en-US"] > .inline-warning | 0 | 2 | 2 | 0-2-2 |
| #identifier | 1 | 0 | 0 | 1-0-0 |
| button:not(#mainBtn) | 1 | 0 | 1 | 1-0-1 |
!important.!important change la façon dont la cascade fonctionne et peut largement complexifier le débogage de problèmes CSS, notamment pour les grandes feuilles de style.!important!important uniquement sur des CSS spécifiques à une page pour remplacer des CSS étrangères (provenant de bibliothèques externes comme Bootstrap ou normalize.css).!important lorsque vous codez un plugin, une extension.!important sur des CSS appliquées à un site.