div),
ce qui n'est pas très propre (le HTML doit rester sémantique)nav a : tout élément a descendant d'un élément navnav > a : tout élément a fils direct d'un élément nav<nav>
Liste de liens :
<ul>
<li><a href="">un lien dans la liste</a></li>
<li><a href="">un autre lien dans la liste</a></li>
</ul>
On peut aussi cliquer sur <a href="">ce lien-ci</a>
ou <a href="">celui-là</a>, mais ils ne sont pas dans la liste.
</nav>
nav a {
color: tomato;
}
nav > a {
font-weight: bold;
}
+ h2 + p : tout élément p suivant immédiatement un élément h2~h2 ~ p : tout élément p suivant un élément h2 (mais pas forcément immédiatement)<ul>
<li>un item</li>
<li class="toto">
un item de classe <code>toto</code>
</li>
<li>un autre item</li>
<li>un autre item</li>
<li>un dernier item</li>
</ul>
<p>Une deuxième liste :</p>
<ul>
<li>avec un item</li>
<li>et un autre</li>
</ul>
.toto + li {
color: forestgreen;
font-weight: bold;
}
.toto ~ li {
background-color: gold;
}
toto
Une deuxième liste :
Attention, dans les deux cas, les deux éléments doivent avoir le même parent !
Dans l'exemple, les li de la deuxième liste ne sont pas colorés.
a:hover { color: black; background-color: red; }
:hover est une pseudo-classe : c'est comme si le navigateur
ajoutait en direct une classe spéciale à un lien qui est en train d'être survolé
a:link { color: green; } /* par défaut */
a:visited { color: orange; } /* déjà visité */
a:hover { color: black; background-color: red; } /* pendant le survol */
a:focus { color: #aaa; font-size: 150%; } /* focus clavier */
a:active { color: yellow; } /* pendant le clic */
:visited sont très limitées (essentiellement les couleurs et rien d'autre), pour des raisons de respect de la vie privée
<p>Passer la souris sur cette phrase</p>
<input type="text" value="Mettre le curseur ici" />
<p>Cliquer sur le mot en gras : <strong>dimétrodon</strong></p>
p:hover {
background-color: aquamarine;
}
input:focus {
background-color: tomato;
}
strong:active {
background-color: gold;
}
Passer la souris sur cette phrase
Cliquer sur le mot en gras : dimétrodon
:hover est extrêmement utile pour rendre les pages un peu plus interactives
.sombre et .clair):nth-child(odd) sélectionne les éléments de rang impair, :nth-child(even) sélectionne les éléments de rang pair:nth-child peut ne pas être intuitif :
img:nth-child(odd) ne sélectionne pas une image sur deux, mais tous les éléments qui sont des fils impairs et aussi des images !img:nth-of-type(odd)
ou img:nth-of-type(even):nth-of-type(odd) sélectionne un élément s'il est de rang impair dans la liste des fils de même type de son parent:first-child sélectionne les éléments qui sont le premier fils
de leur parent:last-child sélectionne les éléments qui sont le dernier fils
de leur parent:first-of-type, :last-of-type premier ou dernier fils d'un type donné::first-line : pseudo-élément qui sélectionne
la première ligne de texte d'un élément::first-letter : pseudo-élément qui sélectionne la première lettre d'un élément: (comme pour les pseudo-classes).#toto:hover sélectionne toto (s'il est survolé), mais#toto::first-line ne sélectionne pas toto, mais un (pseudo-)fils.:first-child (pseudo-classe) et ::first-line (pseudo-élément) !
::before, ::after permettent d'insérer du contenu au
début ou à la fin d'un élément,
grâce à la propriété content
#toto::after {
content: "je suis le dernier";
}
ajoute un fils à l'élément d'identifiant toto, qui contient le texte
je suis le dernier, et qui est situé après tous les fils de toto.
content. Exemple :
#toto::after {
content: url('logo.png');
}