Voici une page et sa feuille de style
Exercice de TD · niveau 2 · NSI (première), chapitre 10 — Interagir sur le Web · Décrire la page : HTML et CSS
Énoncé
Voici une page et sa feuille de style.
<div id="menu">
<p class="actif">Accueil</p>
<p>Cours</p>
<a class="actif" href="/tp">TP</a>
</div>
<p class="actif">Nouveautes</p>
p { color: gray; }
.actif { color: red; }
#menu p { font-weight: bold; }
div a.actif { text-decoration: underline; }
span.actif { color: green; }
- Pour chacun des quatre éléments de texte, donner la couleur, et dire s'il est en gras et s'il est souligné.
- Quelle règle ne s'applique à aucun élément ? Est-ce une erreur ?
Corrigé
1.
| Élément | Couleur | Gras | Souligné |
|---|---|---|---|
| ` Accueil ` | rouge | oui | non |
| ` Cours ` | gris | oui | non |
| `TP` | rouge | non | oui |
| ` Nouveautes ` | rouge | non | non |
Trois raisonnements suffisent à tout obtenir :
- Rouge contre gris. Les deux premières règles visent le même paragraphe. Un sélecteur de classe l'emporte sur un sélecteur de balise :
.actifgagne, quel que soit l'ordre dans le fichier. - Le gras.
#menu pse lit « toutpsitué à l'intérieur de l'élément d'identifiantmenu». Le lien<a>n'est pas unp: il n'est pas mis en gras. Le dernier paragraphe est bien unp, mais il est hors dudiv: pas de gras non plus. - Le soulignement.
div a.actifse lit « un<a>de classeactifsitué dans un<div>» : seul le lien correspond.
Contrôle : un lien est de toute façon souligné par défaut dans un navigateur. La règle ne change donc rien à l'œil ici — ce qui est une bonne raison de ne pas se fier à l'apparence pour vérifier qu'un sélecteur fonctionne, et de regarder l'inspecteur du navigateur.
2. span.actif ne s'applique à rien : la page ne contient aucun <span>. Ce n'est pas une erreur au sens strict — le navigateur l'ignore sans rien signaler, c'est là toute la difficulté. Une règle CSS qui ne désigne aucun élément ne provoque jamais de message : elle est simplement sans effet. C'est la différence de fond avec un langage de programmation, où une instruction inatteignable finit par se remarquer.
Piège : lire div a.actif comme « un div, puis un a, puis un élément de classe actif », soit trois éléments. L'espace signifie « à l'intérieur de » ; l'absence d'espace, dans a.actif, signifie « le même élément ».
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.